diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b102efcfe1..fb2367e6b1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -22,9 +22,7 @@ common/lib/xmodule/xmodule/capa_module.py @edx/platform-core-extensions common/lib/xmodule/xmodule/html_module.py @edx/platform-core-extensions common/lib/xmodule/xmodule/video_module @edx/platform-core-extensions lms/djangoapps/discussion/ @edx/platform-core-extensions -lms/djangoapps/discussion_api/ @edx/platform-core-extensions lms/djangoapps/edxnotes @edx/platform-core-extensions -lms/djangoapps/notifier_api/ @edx/platform-core-extensions # Analytics common/djangoapps/track/ @edx/edx-data-engineering diff --git a/.gitignore b/.gitignore index 2cc71b43c1..6f17ec1b01 100644 --- a/.gitignore +++ b/.gitignore @@ -132,7 +132,7 @@ build /src/ \#*\# .env/ -lms/lib/comment_client/python +openedx/core/djangoapps/discussion_common/comment_client/python autodeploy.properties .ws_migrations_complete dist diff --git a/cms/djangoapps/contentstore/management/commands/import.py b/cms/djangoapps/contentstore/management/commands/import.py index 539d9b9377..efd72c3605 100644 --- a/cms/djangoapps/contentstore/management/commands/import.py +++ b/cms/djangoapps/contentstore/management/commands/import.py @@ -2,7 +2,7 @@ Script for importing courseware from XML format """ from django.core.management.base import BaseCommand -from django_comment_common.utils import are_permissions_roles_seeded, seed_permissions_roles +from openedx.core.djangoapps.discussion_common.utils import are_permissions_roles_seeded, seed_permissions_roles from xmodule.contentstore.django import contentstore from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.django import modulestore diff --git a/cms/djangoapps/contentstore/management/commands/tests/test_import.py b/cms/djangoapps/contentstore/management/commands/tests/test_import.py index 9de6975924..876adca8da 100644 --- a/cms/djangoapps/contentstore/management/commands/tests/test_import.py +++ b/cms/djangoapps/contentstore/management/commands/tests/test_import.py @@ -9,7 +9,7 @@ import tempfile from django.core.management import call_command from path import Path as path -from django_comment_common.utils import are_permissions_roles_seeded +from openedx.core.djangoapps.discussion_common.utils import are_permissions_roles_seeded from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.django import modulestore from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase diff --git a/cms/djangoapps/contentstore/tests/test_contentstore.py b/cms/djangoapps/contentstore/tests/test_contentstore.py index 897badaa0a..a1847c26c5 100644 --- a/cms/djangoapps/contentstore/tests/test_contentstore.py +++ b/cms/djangoapps/contentstore/tests/test_contentstore.py @@ -35,7 +35,7 @@ from contentstore.views.component import ADVANCED_COMPONENT_TYPES from contentstore.config import waffle from course_action_state.managers import CourseActionStateItemNotFoundError from course_action_state.models import CourseRerunState, CourseRerunUIStateManager -from django_comment_common.utils import are_permissions_roles_seeded +from openedx.core.djangoapps.discussion_common.utils import are_permissions_roles_seeded from openedx.core.lib.tempdir import mkdtemp_clean from student import auth from student.models import CourseEnrollment diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index 9a8db4941f..119153a28a 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -15,8 +15,8 @@ from opaque_keys.edx.locator import LibraryLocator from pytz import UTC from six import text_type -from django_comment_common.models import assign_default_role -from django_comment_common.utils import seed_permissions_roles +from openedx.core.djangoapps.discussion_common.models import assign_default_role +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from openedx.core.djangoapps.site_configuration.models import SiteConfiguration from openedx.features.content_type_gating.models import ContentTypeGatingConfig from openedx.features.content_type_gating.partitions import CONTENT_TYPE_GATING_SCHEME diff --git a/cms/envs/common.py b/cms/envs/common.py index 84a087ffe7..804c108879 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -1055,8 +1055,8 @@ INSTALLED_APPS = [ # Ability to detect and special-case crawler behavior 'openedx.core.djangoapps.crawlers', - # comment common - 'django_comment_common', + # Discussion + 'openedx.core.djangoapps.discussion_common', # for course creator table 'django.contrib.admin', diff --git a/common/djangoapps/student/models.py b/common/djangoapps/student/models.py index 8acd28194c..294f1e82fd 100644 --- a/common/djangoapps/student/models.py +++ b/common/djangoapps/student/models.py @@ -51,9 +51,7 @@ from slumber.exceptions import HttpClientError, HttpServerError from user_util import user_util from edx_django_utils.cache import RequestCache -import lms.lib.comment_client as cc from student.signals import UNENROLL_DONE, ENROLL_STATUS_CHANGE, ENROLLMENT_TRACK_UPDATED -from lms.djangoapps.certificates.models import GeneratedCertificate from course_modes.models import CourseMode, get_cosmetic_verified_display_price from courseware.models import ( CourseDynamicUpgradeDeadlineConfiguration, @@ -62,7 +60,9 @@ from courseware.models import ( ) from enrollment.api import _default_course_mode +from lms.djangoapps.certificates.models import GeneratedCertificate from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +import openedx.core.djangoapps.discussion_common.comment_client as cc from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.xmodule_django.models import NoneToEmptyManager from openedx.core.djangolib.model_mixins import DeletableByUserValue diff --git a/common/djangoapps/student/role_helpers.py b/common/djangoapps/student/role_helpers.py index 373b2e9098..17ac742f2f 100644 --- a/common/djangoapps/student/role_helpers.py +++ b/common/djangoapps/student/role_helpers.py @@ -1,7 +1,7 @@ """ Helpers for student roles """ -from django_comment_common.models import ( +from openedx.core.djangoapps.discussion_common.models import ( FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_MODERATOR, FORUM_ROLE_GROUP_MODERATOR, diff --git a/common/test/db_cache/bok_choy_data_default.json b/common/test/db_cache/bok_choy_data_default.json index ad83efd629..a0be842752 100644 --- a/common/test/db_cache/bok_choy_data_default.json +++ b/common/test/db_cache/bok_choy_data_default.json @@ -1 +1 @@ -[{"model": "contenttypes.contenttype", "pk": 1, "fields": {"app_label": "api_admin", "model": "apiaccessrequest"}}, {"model": "contenttypes.contenttype", "pk": 2, "fields": {"app_label": "auth", "model": "permission"}}, {"model": "contenttypes.contenttype", "pk": 3, "fields": {"app_label": "auth", "model": "group"}}, {"model": "contenttypes.contenttype", "pk": 4, "fields": {"app_label": "auth", "model": "user"}}, {"model": "contenttypes.contenttype", "pk": 5, "fields": {"app_label": "contenttypes", "model": "contenttype"}}, {"model": "contenttypes.contenttype", "pk": 6, "fields": {"app_label": "redirects", "model": "redirect"}}, {"model": "contenttypes.contenttype", "pk": 7, "fields": {"app_label": "sessions", "model": "session"}}, {"model": "contenttypes.contenttype", "pk": 8, "fields": {"app_label": "sites", "model": "site"}}, {"model": "contenttypes.contenttype", "pk": 9, "fields": {"app_label": "djcelery", "model": "taskmeta"}}, {"model": "contenttypes.contenttype", "pk": 10, "fields": {"app_label": "djcelery", "model": "tasksetmeta"}}, {"model": "contenttypes.contenttype", "pk": 11, "fields": {"app_label": "djcelery", "model": "intervalschedule"}}, {"model": "contenttypes.contenttype", "pk": 12, "fields": {"app_label": "djcelery", "model": "crontabschedule"}}, {"model": "contenttypes.contenttype", "pk": 13, "fields": {"app_label": "djcelery", "model": "periodictasks"}}, {"model": "contenttypes.contenttype", "pk": 14, "fields": {"app_label": "djcelery", "model": "periodictask"}}, {"model": "contenttypes.contenttype", "pk": 15, "fields": {"app_label": "djcelery", "model": "workerstate"}}, {"model": "contenttypes.contenttype", "pk": 16, "fields": {"app_label": "djcelery", "model": "taskstate"}}, {"model": "contenttypes.contenttype", "pk": 17, "fields": {"app_label": "waffle", "model": "flag"}}, {"model": "contenttypes.contenttype", "pk": 18, "fields": {"app_label": "waffle", "model": "switch"}}, {"model": "contenttypes.contenttype", "pk": 19, "fields": {"app_label": "waffle", "model": "sample"}}, {"model": "contenttypes.contenttype", "pk": 20, "fields": {"app_label": "status", "model": "globalstatusmessage"}}, {"model": "contenttypes.contenttype", "pk": 21, "fields": {"app_label": "status", "model": "coursemessage"}}, {"model": "contenttypes.contenttype", "pk": 22, "fields": {"app_label": "static_replace", "model": "assetbaseurlconfig"}}, {"model": "contenttypes.contenttype", "pk": 23, "fields": {"app_label": "static_replace", "model": "assetexcludedextensionsconfig"}}, {"model": "contenttypes.contenttype", "pk": 24, "fields": {"app_label": "contentserver", "model": "courseassetcachettlconfig"}}, {"model": "contenttypes.contenttype", "pk": 25, "fields": {"app_label": "contentserver", "model": "cdnuseragentsconfig"}}, {"model": "contenttypes.contenttype", "pk": 26, "fields": {"app_label": "theming", "model": "sitetheme"}}, {"model": "contenttypes.contenttype", "pk": 27, "fields": {"app_label": "site_configuration", "model": "siteconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 28, "fields": {"app_label": "site_configuration", "model": "siteconfigurationhistory"}}, {"model": "contenttypes.contenttype", "pk": 29, "fields": {"app_label": "video_config", "model": "hlsplaybackenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 30, "fields": {"app_label": "video_config", "model": "coursehlsplaybackenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 31, "fields": {"app_label": "video_config", "model": "videotranscriptenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 32, "fields": {"app_label": "video_config", "model": "coursevideotranscriptenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 33, "fields": {"app_label": "video_pipeline", "model": "videopipelineintegration"}}, {"model": "contenttypes.contenttype", "pk": 34, "fields": {"app_label": "video_pipeline", "model": "videouploadsenabledbydefault"}}, {"model": "contenttypes.contenttype", "pk": 35, "fields": {"app_label": "video_pipeline", "model": "coursevideouploadsenabledbydefault"}}, {"model": "contenttypes.contenttype", "pk": 36, "fields": {"app_label": "bookmarks", "model": "bookmark"}}, {"model": "contenttypes.contenttype", "pk": 37, "fields": {"app_label": "bookmarks", "model": "xblockcache"}}, {"model": "contenttypes.contenttype", "pk": 38, "fields": {"app_label": "courseware", "model": "studentmodule"}}, {"model": "contenttypes.contenttype", "pk": 39, "fields": {"app_label": "courseware", "model": "studentmodulehistory"}}, {"model": "contenttypes.contenttype", "pk": 40, "fields": {"app_label": "courseware", "model": "xmoduleuserstatesummaryfield"}}, {"model": "contenttypes.contenttype", "pk": 41, "fields": {"app_label": "courseware", "model": "xmodulestudentprefsfield"}}, {"model": "contenttypes.contenttype", "pk": 42, "fields": {"app_label": "courseware", "model": "xmodulestudentinfofield"}}, {"model": "contenttypes.contenttype", "pk": 43, "fields": {"app_label": "courseware", "model": "offlinecomputedgrade"}}, {"model": "contenttypes.contenttype", "pk": 44, "fields": {"app_label": "courseware", "model": "offlinecomputedgradelog"}}, {"model": "contenttypes.contenttype", "pk": 45, "fields": {"app_label": "courseware", "model": "studentfieldoverride"}}, {"model": "contenttypes.contenttype", "pk": 46, "fields": {"app_label": "courseware", "model": "dynamicupgradedeadlineconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 47, "fields": {"app_label": "courseware", "model": "coursedynamicupgradedeadlineconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 48, "fields": {"app_label": "courseware", "model": "orgdynamicupgradedeadlineconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 49, "fields": {"app_label": "student", "model": "anonymoususerid"}}, {"model": "contenttypes.contenttype", "pk": 50, "fields": {"app_label": "student", "model": "userstanding"}}, {"model": "contenttypes.contenttype", "pk": 51, "fields": {"app_label": "student", "model": "userprofile"}}, {"model": "contenttypes.contenttype", "pk": 52, "fields": {"app_label": "student", "model": "usersignupsource"}}, {"model": "contenttypes.contenttype", "pk": 53, "fields": {"app_label": "student", "model": "usertestgroup"}}, {"model": "contenttypes.contenttype", "pk": 54, "fields": {"app_label": "student", "model": "registration"}}, {"model": "contenttypes.contenttype", "pk": 55, "fields": {"app_label": "student", "model": "pendingnamechange"}}, {"model": "contenttypes.contenttype", "pk": 56, "fields": {"app_label": "student", "model": "pendingemailchange"}}, {"model": "contenttypes.contenttype", "pk": 57, "fields": {"app_label": "student", "model": "passwordhistory"}}, {"model": "contenttypes.contenttype", "pk": 58, "fields": {"app_label": "student", "model": "loginfailures"}}, {"model": "contenttypes.contenttype", "pk": 59, "fields": {"app_label": "student", "model": "courseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 60, "fields": {"app_label": "student", "model": "manualenrollmentaudit"}}, {"model": "contenttypes.contenttype", "pk": 61, "fields": {"app_label": "student", "model": "courseenrollmentallowed"}}, {"model": "contenttypes.contenttype", "pk": 62, "fields": {"app_label": "student", "model": "courseaccessrole"}}, {"model": "contenttypes.contenttype", "pk": 63, "fields": {"app_label": "student", "model": "dashboardconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 64, "fields": {"app_label": "student", "model": "linkedinaddtoprofileconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 65, "fields": {"app_label": "student", "model": "entranceexamconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 66, "fields": {"app_label": "student", "model": "languageproficiency"}}, {"model": "contenttypes.contenttype", "pk": 67, "fields": {"app_label": "student", "model": "sociallink"}}, {"model": "contenttypes.contenttype", "pk": 68, "fields": {"app_label": "student", "model": "courseenrollmentattribute"}}, {"model": "contenttypes.contenttype", "pk": 69, "fields": {"app_label": "student", "model": "enrollmentrefundconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 70, "fields": {"app_label": "student", "model": "registrationcookieconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 71, "fields": {"app_label": "student", "model": "userattribute"}}, {"model": "contenttypes.contenttype", "pk": 72, "fields": {"app_label": "student", "model": "logoutviewconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 73, "fields": {"app_label": "track", "model": "trackinglog"}}, {"model": "contenttypes.contenttype", "pk": 74, "fields": {"app_label": "util", "model": "ratelimitconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 75, "fields": {"app_label": "certificates", "model": "certificatewhitelist"}}, {"model": "contenttypes.contenttype", "pk": 76, "fields": {"app_label": "certificates", "model": "generatedcertificate"}}, {"model": "contenttypes.contenttype", "pk": 77, "fields": {"app_label": "certificates", "model": "certificategenerationhistory"}}, {"model": "contenttypes.contenttype", "pk": 78, "fields": {"app_label": "certificates", "model": "certificateinvalidation"}}, {"model": "contenttypes.contenttype", "pk": 79, "fields": {"app_label": "certificates", "model": "examplecertificateset"}}, {"model": "contenttypes.contenttype", "pk": 80, "fields": {"app_label": "certificates", "model": "examplecertificate"}}, {"model": "contenttypes.contenttype", "pk": 81, "fields": {"app_label": "certificates", "model": "certificategenerationcoursesetting"}}, {"model": "contenttypes.contenttype", "pk": 82, "fields": {"app_label": "certificates", "model": "certificategenerationconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 83, "fields": {"app_label": "certificates", "model": "certificatehtmlviewconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 84, "fields": {"app_label": "certificates", "model": "certificatetemplate"}}, {"model": "contenttypes.contenttype", "pk": 85, "fields": {"app_label": "certificates", "model": "certificatetemplateasset"}}, {"model": "contenttypes.contenttype", "pk": 86, "fields": {"app_label": "instructor_task", "model": "instructortask"}}, {"model": "contenttypes.contenttype", "pk": 87, "fields": {"app_label": "instructor_task", "model": "gradereportsetting"}}, {"model": "contenttypes.contenttype", "pk": 88, "fields": {"app_label": "course_groups", "model": "courseusergroup"}}, {"model": "contenttypes.contenttype", "pk": 89, "fields": {"app_label": "course_groups", "model": "cohortmembership"}}, {"model": "contenttypes.contenttype", "pk": 90, "fields": {"app_label": "course_groups", "model": "courseusergrouppartitiongroup"}}, {"model": "contenttypes.contenttype", "pk": 91, "fields": {"app_label": "course_groups", "model": "coursecohortssettings"}}, {"model": "contenttypes.contenttype", "pk": 92, "fields": {"app_label": "course_groups", "model": "coursecohort"}}, {"model": "contenttypes.contenttype", "pk": 93, "fields": {"app_label": "course_groups", "model": "unregisteredlearnercohortassignments"}}, {"model": "contenttypes.contenttype", "pk": 94, "fields": {"app_label": "bulk_email", "model": "target"}}, {"model": "contenttypes.contenttype", "pk": 95, "fields": {"app_label": "bulk_email", "model": "cohorttarget"}}, {"model": "contenttypes.contenttype", "pk": 96, "fields": {"app_label": "bulk_email", "model": "coursemodetarget"}}, {"model": "contenttypes.contenttype", "pk": 97, "fields": {"app_label": "bulk_email", "model": "courseemail"}}, {"model": "contenttypes.contenttype", "pk": 98, "fields": {"app_label": "bulk_email", "model": "optout"}}, {"model": "contenttypes.contenttype", "pk": 99, "fields": {"app_label": "bulk_email", "model": "courseemailtemplate"}}, {"model": "contenttypes.contenttype", "pk": 100, "fields": {"app_label": "bulk_email", "model": "courseauthorization"}}, {"model": "contenttypes.contenttype", "pk": 101, "fields": {"app_label": "bulk_email", "model": "bulkemailflag"}}, {"model": "contenttypes.contenttype", "pk": 102, "fields": {"app_label": "branding", "model": "brandinginfoconfig"}}, {"model": "contenttypes.contenttype", "pk": 103, "fields": {"app_label": "branding", "model": "brandingapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 104, "fields": {"app_label": "grades", "model": "visibleblocks"}}, {"model": "contenttypes.contenttype", "pk": 105, "fields": {"app_label": "grades", "model": "persistentsubsectiongrade"}}, {"model": "contenttypes.contenttype", "pk": 106, "fields": {"app_label": "grades", "model": "persistentcoursegrade"}}, {"model": "contenttypes.contenttype", "pk": 107, "fields": {"app_label": "grades", "model": "persistentsubsectiongradeoverride"}}, {"model": "contenttypes.contenttype", "pk": 108, "fields": {"app_label": "grades", "model": "persistentgradesenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 109, "fields": {"app_label": "grades", "model": "coursepersistentgradesflag"}}, {"model": "contenttypes.contenttype", "pk": 110, "fields": {"app_label": "grades", "model": "computegradessetting"}}, {"model": "contenttypes.contenttype", "pk": 111, "fields": {"app_label": "external_auth", "model": "externalauthmap"}}, {"model": "contenttypes.contenttype", "pk": 112, "fields": {"app_label": "django_openid_auth", "model": "nonce"}}, {"model": "contenttypes.contenttype", "pk": 113, "fields": {"app_label": "django_openid_auth", "model": "association"}}, {"model": "contenttypes.contenttype", "pk": 114, "fields": {"app_label": "django_openid_auth", "model": "useropenid"}}, {"model": "contenttypes.contenttype", "pk": 115, "fields": {"app_label": "oauth2", "model": "client"}}, {"model": "contenttypes.contenttype", "pk": 116, "fields": {"app_label": "oauth2", "model": "grant"}}, {"model": "contenttypes.contenttype", "pk": 117, "fields": {"app_label": "oauth2", "model": "accesstoken"}}, {"model": "contenttypes.contenttype", "pk": 118, "fields": {"app_label": "oauth2", "model": "refreshtoken"}}, {"model": "contenttypes.contenttype", "pk": 119, "fields": {"app_label": "edx_oauth2_provider", "model": "trustedclient"}}, {"model": "contenttypes.contenttype", "pk": 120, "fields": {"app_label": "oauth2_provider", "model": "application"}}, {"model": "contenttypes.contenttype", "pk": 121, "fields": {"app_label": "oauth2_provider", "model": "grant"}}, {"model": "contenttypes.contenttype", "pk": 122, "fields": {"app_label": "oauth2_provider", "model": "accesstoken"}}, {"model": "contenttypes.contenttype", "pk": 123, "fields": {"app_label": "oauth2_provider", "model": "refreshtoken"}}, {"model": "contenttypes.contenttype", "pk": 124, "fields": {"app_label": "oauth_dispatch", "model": "restrictedapplication"}}, {"model": "contenttypes.contenttype", "pk": 125, "fields": {"app_label": "third_party_auth", "model": "oauth2providerconfig"}}, {"model": "contenttypes.contenttype", "pk": 126, "fields": {"app_label": "third_party_auth", "model": "samlproviderconfig"}}, {"model": "contenttypes.contenttype", "pk": 127, "fields": {"app_label": "third_party_auth", "model": "samlconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 128, "fields": {"app_label": "third_party_auth", "model": "samlproviderdata"}}, {"model": "contenttypes.contenttype", "pk": 129, "fields": {"app_label": "third_party_auth", "model": "ltiproviderconfig"}}, {"model": "contenttypes.contenttype", "pk": 130, "fields": {"app_label": "third_party_auth", "model": "providerapipermissions"}}, {"model": "contenttypes.contenttype", "pk": 131, "fields": {"app_label": "oauth_provider", "model": "nonce"}}, {"model": "contenttypes.contenttype", "pk": 132, "fields": {"app_label": "oauth_provider", "model": "scope"}}, {"model": "contenttypes.contenttype", "pk": 133, "fields": {"app_label": "oauth_provider", "model": "consumer"}}, {"model": "contenttypes.contenttype", "pk": 134, "fields": {"app_label": "oauth_provider", "model": "token"}}, {"model": "contenttypes.contenttype", "pk": 135, "fields": {"app_label": "oauth_provider", "model": "resource"}}, {"model": "contenttypes.contenttype", "pk": 136, "fields": {"app_label": "wiki", "model": "article"}}, {"model": "contenttypes.contenttype", "pk": 137, "fields": {"app_label": "wiki", "model": "articleforobject"}}, {"model": "contenttypes.contenttype", "pk": 138, "fields": {"app_label": "wiki", "model": "articlerevision"}}, {"model": "contenttypes.contenttype", "pk": 139, "fields": {"app_label": "wiki", "model": "articleplugin"}}, {"model": "contenttypes.contenttype", "pk": 140, "fields": {"app_label": "wiki", "model": "reusableplugin"}}, {"model": "contenttypes.contenttype", "pk": 141, "fields": {"app_label": "wiki", "model": "simpleplugin"}}, {"model": "contenttypes.contenttype", "pk": 142, "fields": {"app_label": "wiki", "model": "revisionplugin"}}, {"model": "contenttypes.contenttype", "pk": 143, "fields": {"app_label": "wiki", "model": "revisionpluginrevision"}}, {"model": "contenttypes.contenttype", "pk": 144, "fields": {"app_label": "wiki", "model": "urlpath"}}, {"model": "contenttypes.contenttype", "pk": 145, "fields": {"app_label": "django_notify", "model": "notificationtype"}}, {"model": "contenttypes.contenttype", "pk": 146, "fields": {"app_label": "django_notify", "model": "settings"}}, {"model": "contenttypes.contenttype", "pk": 147, "fields": {"app_label": "django_notify", "model": "subscription"}}, {"model": "contenttypes.contenttype", "pk": 148, "fields": {"app_label": "django_notify", "model": "notification"}}, {"model": "contenttypes.contenttype", "pk": 149, "fields": {"app_label": "admin", "model": "logentry"}}, {"model": "contenttypes.contenttype", "pk": 150, "fields": {"app_label": "django_comment_common", "model": "role"}}, {"model": "contenttypes.contenttype", "pk": 151, "fields": {"app_label": "django_comment_common", "model": "permission"}}, {"model": "contenttypes.contenttype", "pk": 152, "fields": {"app_label": "django_comment_common", "model": "forumsconfig"}}, {"model": "contenttypes.contenttype", "pk": 153, "fields": {"app_label": "django_comment_common", "model": "coursediscussionsettings"}}, {"model": "contenttypes.contenttype", "pk": 154, "fields": {"app_label": "notes", "model": "note"}}, {"model": "contenttypes.contenttype", "pk": 155, "fields": {"app_label": "splash", "model": "splashconfig"}}, {"model": "contenttypes.contenttype", "pk": 156, "fields": {"app_label": "user_api", "model": "userpreference"}}, {"model": "contenttypes.contenttype", "pk": 157, "fields": {"app_label": "user_api", "model": "usercoursetag"}}, {"model": "contenttypes.contenttype", "pk": 158, "fields": {"app_label": "user_api", "model": "userorgtag"}}, {"model": "contenttypes.contenttype", "pk": 159, "fields": {"app_label": "shoppingcart", "model": "order"}}, {"model": "contenttypes.contenttype", "pk": 160, "fields": {"app_label": "shoppingcart", "model": "orderitem"}}, {"model": "contenttypes.contenttype", "pk": 161, "fields": {"app_label": "shoppingcart", "model": "invoice"}}, {"model": "contenttypes.contenttype", "pk": 162, "fields": {"app_label": "shoppingcart", "model": "invoicetransaction"}}, {"model": "contenttypes.contenttype", "pk": 163, "fields": {"app_label": "shoppingcart", "model": "invoiceitem"}}, {"model": "contenttypes.contenttype", "pk": 164, "fields": {"app_label": "shoppingcart", "model": "courseregistrationcodeinvoiceitem"}}, {"model": "contenttypes.contenttype", "pk": 165, "fields": {"app_label": "shoppingcart", "model": "invoicehistory"}}, {"model": "contenttypes.contenttype", "pk": 166, "fields": {"app_label": "shoppingcart", "model": "courseregistrationcode"}}, {"model": "contenttypes.contenttype", "pk": 167, "fields": {"app_label": "shoppingcart", "model": "registrationcoderedemption"}}, {"model": "contenttypes.contenttype", "pk": 168, "fields": {"app_label": "shoppingcart", "model": "coupon"}}, {"model": "contenttypes.contenttype", "pk": 169, "fields": {"app_label": "shoppingcart", "model": "couponredemption"}}, {"model": "contenttypes.contenttype", "pk": 170, "fields": {"app_label": "shoppingcart", "model": "paidcourseregistration"}}, {"model": "contenttypes.contenttype", "pk": 171, "fields": {"app_label": "shoppingcart", "model": "courseregcodeitem"}}, {"model": "contenttypes.contenttype", "pk": 172, "fields": {"app_label": "shoppingcart", "model": "courseregcodeitemannotation"}}, {"model": "contenttypes.contenttype", "pk": 173, "fields": {"app_label": "shoppingcart", "model": "paidcourseregistrationannotation"}}, {"model": "contenttypes.contenttype", "pk": 174, "fields": {"app_label": "shoppingcart", "model": "certificateitem"}}, {"model": "contenttypes.contenttype", "pk": 175, "fields": {"app_label": "shoppingcart", "model": "donationconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 176, "fields": {"app_label": "shoppingcart", "model": "donation"}}, {"model": "contenttypes.contenttype", "pk": 177, "fields": {"app_label": "course_modes", "model": "coursemode"}}, {"model": "contenttypes.contenttype", "pk": 178, "fields": {"app_label": "course_modes", "model": "coursemodesarchive"}}, {"model": "contenttypes.contenttype", "pk": 179, "fields": {"app_label": "course_modes", "model": "coursemodeexpirationconfig"}}, {"model": "contenttypes.contenttype", "pk": 180, "fields": {"app_label": "entitlements", "model": "courseentitlement"}}, {"model": "contenttypes.contenttype", "pk": 181, "fields": {"app_label": "verify_student", "model": "softwaresecurephotoverification"}}, {"model": "contenttypes.contenttype", "pk": 182, "fields": {"app_label": "verify_student", "model": "verificationdeadline"}}, {"model": "contenttypes.contenttype", "pk": 183, "fields": {"app_label": "verify_student", "model": "verificationcheckpoint"}}, {"model": "contenttypes.contenttype", "pk": 184, "fields": {"app_label": "verify_student", "model": "verificationstatus"}}, {"model": "contenttypes.contenttype", "pk": 185, "fields": {"app_label": "verify_student", "model": "incoursereverificationconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 186, "fields": {"app_label": "verify_student", "model": "icrvstatusemailsconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 187, "fields": {"app_label": "verify_student", "model": "skippedreverification"}}, {"model": "contenttypes.contenttype", "pk": 188, "fields": {"app_label": "dark_lang", "model": "darklangconfig"}}, {"model": "contenttypes.contenttype", "pk": 189, "fields": {"app_label": "microsite_configuration", "model": "microsite"}}, {"model": "contenttypes.contenttype", "pk": 190, "fields": {"app_label": "microsite_configuration", "model": "micrositehistory"}}, {"model": "contenttypes.contenttype", "pk": 191, "fields": {"app_label": "microsite_configuration", "model": "micrositeorganizationmapping"}}, {"model": "contenttypes.contenttype", "pk": 192, "fields": {"app_label": "microsite_configuration", "model": "micrositetemplate"}}, {"model": "contenttypes.contenttype", "pk": 193, "fields": {"app_label": "rss_proxy", "model": "whitelistedrssurl"}}, {"model": "contenttypes.contenttype", "pk": 194, "fields": {"app_label": "embargo", "model": "embargoedcourse"}}, {"model": "contenttypes.contenttype", "pk": 195, "fields": {"app_label": "embargo", "model": "embargoedstate"}}, {"model": "contenttypes.contenttype", "pk": 196, "fields": {"app_label": "embargo", "model": "restrictedcourse"}}, {"model": "contenttypes.contenttype", "pk": 197, "fields": {"app_label": "embargo", "model": "country"}}, {"model": "contenttypes.contenttype", "pk": 198, "fields": {"app_label": "embargo", "model": "countryaccessrule"}}, {"model": "contenttypes.contenttype", "pk": 199, "fields": {"app_label": "embargo", "model": "courseaccessrulehistory"}}, {"model": "contenttypes.contenttype", "pk": 200, "fields": {"app_label": "embargo", "model": "ipfilter"}}, {"model": "contenttypes.contenttype", "pk": 201, "fields": {"app_label": "course_action_state", "model": "coursererunstate"}}, {"model": "contenttypes.contenttype", "pk": 202, "fields": {"app_label": "mobile_api", "model": "mobileapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 203, "fields": {"app_label": "mobile_api", "model": "appversionconfig"}}, {"model": "contenttypes.contenttype", "pk": 204, "fields": {"app_label": "mobile_api", "model": "ignoremobileavailableflagconfig"}}, {"model": "contenttypes.contenttype", "pk": 205, "fields": {"app_label": "social_django", "model": "usersocialauth"}}, {"model": "contenttypes.contenttype", "pk": 206, "fields": {"app_label": "social_django", "model": "nonce"}}, {"model": "contenttypes.contenttype", "pk": 207, "fields": {"app_label": "social_django", "model": "association"}}, {"model": "contenttypes.contenttype", "pk": 208, "fields": {"app_label": "social_django", "model": "code"}}, {"model": "contenttypes.contenttype", "pk": 209, "fields": {"app_label": "social_django", "model": "partial"}}, {"model": "contenttypes.contenttype", "pk": 210, "fields": {"app_label": "survey", "model": "surveyform"}}, {"model": "contenttypes.contenttype", "pk": 211, "fields": {"app_label": "survey", "model": "surveyanswer"}}, {"model": "contenttypes.contenttype", "pk": 212, "fields": {"app_label": "lms_xblock", "model": "xblockasidesconfig"}}, {"model": "contenttypes.contenttype", "pk": 213, "fields": {"app_label": "problem_builder", "model": "answer"}}, {"model": "contenttypes.contenttype", "pk": 214, "fields": {"app_label": "problem_builder", "model": "share"}}, {"model": "contenttypes.contenttype", "pk": 215, "fields": {"app_label": "submissions", "model": "studentitem"}}, {"model": "contenttypes.contenttype", "pk": 216, "fields": {"app_label": "submissions", "model": "submission"}}, {"model": "contenttypes.contenttype", "pk": 217, "fields": {"app_label": "submissions", "model": "score"}}, {"model": "contenttypes.contenttype", "pk": 218, "fields": {"app_label": "submissions", "model": "scoresummary"}}, {"model": "contenttypes.contenttype", "pk": 219, "fields": {"app_label": "submissions", "model": "scoreannotation"}}, {"model": "contenttypes.contenttype", "pk": 220, "fields": {"app_label": "assessment", "model": "rubric"}}, {"model": "contenttypes.contenttype", "pk": 221, "fields": {"app_label": "assessment", "model": "criterion"}}, {"model": "contenttypes.contenttype", "pk": 222, "fields": {"app_label": "assessment", "model": "criterionoption"}}, {"model": "contenttypes.contenttype", "pk": 223, "fields": {"app_label": "assessment", "model": "assessment"}}, {"model": "contenttypes.contenttype", "pk": 224, "fields": {"app_label": "assessment", "model": "assessmentpart"}}, {"model": "contenttypes.contenttype", "pk": 225, "fields": {"app_label": "assessment", "model": "assessmentfeedbackoption"}}, {"model": "contenttypes.contenttype", "pk": 226, "fields": {"app_label": "assessment", "model": "assessmentfeedback"}}, {"model": "contenttypes.contenttype", "pk": 227, "fields": {"app_label": "assessment", "model": "peerworkflow"}}, {"model": "contenttypes.contenttype", "pk": 228, "fields": {"app_label": "assessment", "model": "peerworkflowitem"}}, {"model": "contenttypes.contenttype", "pk": 229, "fields": {"app_label": "assessment", "model": "trainingexample"}}, {"model": "contenttypes.contenttype", "pk": 230, "fields": {"app_label": "assessment", "model": "studenttrainingworkflow"}}, {"model": "contenttypes.contenttype", "pk": 231, "fields": {"app_label": "assessment", "model": "studenttrainingworkflowitem"}}, {"model": "contenttypes.contenttype", "pk": 232, "fields": {"app_label": "assessment", "model": "staffworkflow"}}, {"model": "contenttypes.contenttype", "pk": 233, "fields": {"app_label": "workflow", "model": "assessmentworkflow"}}, {"model": "contenttypes.contenttype", "pk": 234, "fields": {"app_label": "workflow", "model": "assessmentworkflowstep"}}, {"model": "contenttypes.contenttype", "pk": 235, "fields": {"app_label": "workflow", "model": "assessmentworkflowcancellation"}}, {"model": "contenttypes.contenttype", "pk": 236, "fields": {"app_label": "edxval", "model": "profile"}}, {"model": "contenttypes.contenttype", "pk": 237, "fields": {"app_label": "edxval", "model": "video"}}, {"model": "contenttypes.contenttype", "pk": 238, "fields": {"app_label": "edxval", "model": "coursevideo"}}, {"model": "contenttypes.contenttype", "pk": 239, "fields": {"app_label": "edxval", "model": "encodedvideo"}}, {"model": "contenttypes.contenttype", "pk": 240, "fields": {"app_label": "edxval", "model": "videoimage"}}, {"model": "contenttypes.contenttype", "pk": 241, "fields": {"app_label": "edxval", "model": "videotranscript"}}, {"model": "contenttypes.contenttype", "pk": 242, "fields": {"app_label": "edxval", "model": "transcriptpreference"}}, {"model": "contenttypes.contenttype", "pk": 243, "fields": {"app_label": "edxval", "model": "thirdpartytranscriptcredentialsstate"}}, {"model": "contenttypes.contenttype", "pk": 244, "fields": {"app_label": "course_overviews", "model": "courseoverview"}}, {"model": "contenttypes.contenttype", "pk": 245, "fields": {"app_label": "course_overviews", "model": "courseoverviewtab"}}, {"model": "contenttypes.contenttype", "pk": 246, "fields": {"app_label": "course_overviews", "model": "courseoverviewimageset"}}, {"model": "contenttypes.contenttype", "pk": 247, "fields": {"app_label": "course_overviews", "model": "courseoverviewimageconfig"}}, {"model": "contenttypes.contenttype", "pk": 248, "fields": {"app_label": "course_structures", "model": "coursestructure"}}, {"model": "contenttypes.contenttype", "pk": 249, "fields": {"app_label": "block_structure", "model": "blockstructureconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 250, "fields": {"app_label": "block_structure", "model": "blockstructuremodel"}}, {"model": "contenttypes.contenttype", "pk": 251, "fields": {"app_label": "cors_csrf", "model": "xdomainproxyconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 252, "fields": {"app_label": "commerce", "model": "commerceconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 253, "fields": {"app_label": "credit", "model": "creditprovider"}}, {"model": "contenttypes.contenttype", "pk": 254, "fields": {"app_label": "credit", "model": "creditcourse"}}, {"model": "contenttypes.contenttype", "pk": 255, "fields": {"app_label": "credit", "model": "creditrequirement"}}, {"model": "contenttypes.contenttype", "pk": 256, "fields": {"app_label": "credit", "model": "creditrequirementstatus"}}, {"model": "contenttypes.contenttype", "pk": 257, "fields": {"app_label": "credit", "model": "crediteligibility"}}, {"model": "contenttypes.contenttype", "pk": 258, "fields": {"app_label": "credit", "model": "creditrequest"}}, {"model": "contenttypes.contenttype", "pk": 259, "fields": {"app_label": "credit", "model": "creditconfig"}}, {"model": "contenttypes.contenttype", "pk": 260, "fields": {"app_label": "teams", "model": "courseteam"}}, {"model": "contenttypes.contenttype", "pk": 261, "fields": {"app_label": "teams", "model": "courseteammembership"}}, {"model": "contenttypes.contenttype", "pk": 262, "fields": {"app_label": "xblock_django", "model": "xblockconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 263, "fields": {"app_label": "xblock_django", "model": "xblockstudioconfigurationflag"}}, {"model": "contenttypes.contenttype", "pk": 264, "fields": {"app_label": "xblock_django", "model": "xblockstudioconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 265, "fields": {"app_label": "programs", "model": "programsapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 266, "fields": {"app_label": "catalog", "model": "catalogintegration"}}, {"model": "contenttypes.contenttype", "pk": 267, "fields": {"app_label": "self_paced", "model": "selfpacedconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 268, "fields": {"app_label": "thumbnail", "model": "kvstore"}}, {"model": "contenttypes.contenttype", "pk": 269, "fields": {"app_label": "credentials", "model": "credentialsapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 270, "fields": {"app_label": "milestones", "model": "milestone"}}, {"model": "contenttypes.contenttype", "pk": 271, "fields": {"app_label": "milestones", "model": "milestonerelationshiptype"}}, {"model": "contenttypes.contenttype", "pk": 272, "fields": {"app_label": "milestones", "model": "coursemilestone"}}, {"model": "contenttypes.contenttype", "pk": 273, "fields": {"app_label": "milestones", "model": "coursecontentmilestone"}}, {"model": "contenttypes.contenttype", "pk": 274, "fields": {"app_label": "milestones", "model": "usermilestone"}}, {"model": "contenttypes.contenttype", "pk": 275, "fields": {"app_label": "api_admin", "model": "apiaccessconfig"}}, {"model": "contenttypes.contenttype", "pk": 276, "fields": {"app_label": "api_admin", "model": "catalog"}}, {"model": "contenttypes.contenttype", "pk": 277, "fields": {"app_label": "verified_track_content", "model": "verifiedtrackcohortedcourse"}}, {"model": "contenttypes.contenttype", "pk": 278, "fields": {"app_label": "verified_track_content", "model": "migrateverifiedtrackcohortssetting"}}, {"model": "contenttypes.contenttype", "pk": 279, "fields": {"app_label": "badges", "model": "badgeclass"}}, {"model": "contenttypes.contenttype", "pk": 280, "fields": {"app_label": "badges", "model": "badgeassertion"}}, {"model": "contenttypes.contenttype", "pk": 281, "fields": {"app_label": "badges", "model": "coursecompleteimageconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 282, "fields": {"app_label": "badges", "model": "courseeventbadgesconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 283, "fields": {"app_label": "email_marketing", "model": "emailmarketingconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 284, "fields": {"app_label": "celery_utils", "model": "failedtask"}}, {"model": "contenttypes.contenttype", "pk": 285, "fields": {"app_label": "celery_utils", "model": "chorddata"}}, {"model": "contenttypes.contenttype", "pk": 286, "fields": {"app_label": "crawlers", "model": "crawlersconfig"}}, {"model": "contenttypes.contenttype", "pk": 287, "fields": {"app_label": "waffle_utils", "model": "waffleflagcourseoverridemodel"}}, {"model": "contenttypes.contenttype", "pk": 288, "fields": {"app_label": "schedules", "model": "schedule"}}, {"model": "contenttypes.contenttype", "pk": 289, "fields": {"app_label": "schedules", "model": "scheduleconfig"}}, {"model": "contenttypes.contenttype", "pk": 290, "fields": {"app_label": "schedules", "model": "scheduleexperience"}}, {"model": "contenttypes.contenttype", "pk": 291, "fields": {"app_label": "course_goals", "model": "coursegoal"}}, {"model": "contenttypes.contenttype", "pk": 292, "fields": {"app_label": "completion", "model": "blockcompletion"}}, {"model": "contenttypes.contenttype", "pk": 293, "fields": {"app_label": "experiments", "model": "experimentdata"}}, {"model": "contenttypes.contenttype", "pk": 294, "fields": {"app_label": "experiments", "model": "experimentkeyvalue"}}, {"model": "contenttypes.contenttype", "pk": 295, "fields": {"app_label": "edx_proctoring", "model": "proctoredexam"}}, {"model": "contenttypes.contenttype", "pk": 296, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamreviewpolicy"}}, {"model": "contenttypes.contenttype", "pk": 297, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamreviewpolicyhistory"}}, {"model": "contenttypes.contenttype", "pk": 298, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentattempt"}}, {"model": "contenttypes.contenttype", "pk": 299, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentattempthistory"}}, {"model": "contenttypes.contenttype", "pk": 300, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentallowance"}}, {"model": "contenttypes.contenttype", "pk": 301, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentallowancehistory"}}, {"model": "contenttypes.contenttype", "pk": 302, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamsoftwaresecurereview"}}, {"model": "contenttypes.contenttype", "pk": 303, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamsoftwaresecurereviewhistory"}}, {"model": "contenttypes.contenttype", "pk": 304, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamsoftwaresecurecomment"}}, {"model": "contenttypes.contenttype", "pk": 305, "fields": {"app_label": "organizations", "model": "organization"}}, {"model": "contenttypes.contenttype", "pk": 306, "fields": {"app_label": "organizations", "model": "organizationcourse"}}, {"model": "contenttypes.contenttype", "pk": 307, "fields": {"app_label": "enterprise", "model": "historicalenterprisecustomer"}}, {"model": "contenttypes.contenttype", "pk": 308, "fields": {"app_label": "enterprise", "model": "enterprisecustomer"}}, {"model": "contenttypes.contenttype", "pk": 309, "fields": {"app_label": "enterprise", "model": "enterprisecustomeruser"}}, {"model": "contenttypes.contenttype", "pk": 310, "fields": {"app_label": "enterprise", "model": "pendingenterprisecustomeruser"}}, {"model": "contenttypes.contenttype", "pk": 311, "fields": {"app_label": "enterprise", "model": "pendingenrollment"}}, {"model": "contenttypes.contenttype", "pk": 312, "fields": {"app_label": "enterprise", "model": "enterprisecustomerbrandingconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 313, "fields": {"app_label": "enterprise", "model": "enterprisecustomeridentityprovider"}}, {"model": "contenttypes.contenttype", "pk": 314, "fields": {"app_label": "enterprise", "model": "historicalenterprisecustomerentitlement"}}, {"model": "contenttypes.contenttype", "pk": 315, "fields": {"app_label": "enterprise", "model": "enterprisecustomerentitlement"}}, {"model": "contenttypes.contenttype", "pk": 316, "fields": {"app_label": "enterprise", "model": "historicalenterprisecourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 317, "fields": {"app_label": "enterprise", "model": "enterprisecourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 318, "fields": {"app_label": "enterprise", "model": "historicalenterprisecustomercatalog"}}, {"model": "contenttypes.contenttype", "pk": 319, "fields": {"app_label": "enterprise", "model": "enterprisecustomercatalog"}}, {"model": "contenttypes.contenttype", "pk": 320, "fields": {"app_label": "enterprise", "model": "historicalenrollmentnotificationemailtemplate"}}, {"model": "contenttypes.contenttype", "pk": 321, "fields": {"app_label": "enterprise", "model": "enrollmentnotificationemailtemplate"}}, {"model": "contenttypes.contenttype", "pk": 322, "fields": {"app_label": "enterprise", "model": "enterprisecustomerreportingconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 323, "fields": {"app_label": "consent", "model": "historicaldatasharingconsent"}}, {"model": "contenttypes.contenttype", "pk": 324, "fields": {"app_label": "consent", "model": "datasharingconsent"}}, {"model": "contenttypes.contenttype", "pk": 325, "fields": {"app_label": "integrated_channel", "model": "learnerdatatransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 326, "fields": {"app_label": "integrated_channel", "model": "catalogtransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 327, "fields": {"app_label": "degreed", "model": "degreedglobalconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 328, "fields": {"app_label": "degreed", "model": "historicaldegreedenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 329, "fields": {"app_label": "degreed", "model": "degreedenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 330, "fields": {"app_label": "degreed", "model": "degreedlearnerdatatransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 331, "fields": {"app_label": "sap_success_factors", "model": "sapsuccessfactorsglobalconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 332, "fields": {"app_label": "sap_success_factors", "model": "historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 333, "fields": {"app_label": "sap_success_factors", "model": "sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 334, "fields": {"app_label": "sap_success_factors", "model": "sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 335, "fields": {"app_label": "ccx", "model": "customcourseforedx"}}, {"model": "contenttypes.contenttype", "pk": 336, "fields": {"app_label": "ccx", "model": "ccxfieldoverride"}}, {"model": "contenttypes.contenttype", "pk": 337, "fields": {"app_label": "ccxcon", "model": "ccxcon"}}, {"model": "contenttypes.contenttype", "pk": 338, "fields": {"app_label": "coursewarehistoryextended", "model": "studentmodulehistoryextended"}}, {"model": "contenttypes.contenttype", "pk": 339, "fields": {"app_label": "contentstore", "model": "videouploadconfig"}}, {"model": "contenttypes.contenttype", "pk": 340, "fields": {"app_label": "contentstore", "model": "pushnotificationconfig"}}, {"model": "contenttypes.contenttype", "pk": 341, "fields": {"app_label": "contentstore", "model": "newassetspageflag"}}, {"model": "contenttypes.contenttype", "pk": 342, "fields": {"app_label": "contentstore", "model": "coursenewassetspageflag"}}, {"model": "contenttypes.contenttype", "pk": 343, "fields": {"app_label": "course_creators", "model": "coursecreator"}}, {"model": "contenttypes.contenttype", "pk": 344, "fields": {"app_label": "xblock_config", "model": "studioconfig"}}, {"model": "contenttypes.contenttype", "pk": 345, "fields": {"app_label": "xblock_config", "model": "courseeditltifieldsenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 346, "fields": {"app_label": "tagging", "model": "tagcategories"}}, {"model": "contenttypes.contenttype", "pk": 347, "fields": {"app_label": "tagging", "model": "tagavailablevalues"}}, {"model": "contenttypes.contenttype", "pk": 348, "fields": {"app_label": "user_tasks", "model": "usertaskstatus"}}, {"model": "contenttypes.contenttype", "pk": 349, "fields": {"app_label": "user_tasks", "model": "usertaskartifact"}}, {"model": "contenttypes.contenttype", "pk": 350, "fields": {"app_label": "entitlements", "model": "courseentitlementpolicy"}}, {"model": "contenttypes.contenttype", "pk": 351, "fields": {"app_label": "entitlements", "model": "courseentitlementsupportdetail"}}, {"model": "contenttypes.contenttype", "pk": 352, "fields": {"app_label": "integrated_channel", "model": "contentmetadataitemtransmission"}}, {"model": "contenttypes.contenttype", "pk": 353, "fields": {"app_label": "video_config", "model": "transcriptmigrationsetting"}}, {"model": "contenttypes.contenttype", "pk": 354, "fields": {"app_label": "verify_student", "model": "ssoverification"}}, {"model": "contenttypes.contenttype", "pk": 355, "fields": {"app_label": "user_api", "model": "userretirementstatus"}}, {"model": "contenttypes.contenttype", "pk": 356, "fields": {"app_label": "user_api", "model": "retirementstate"}}, {"model": "contenttypes.contenttype", "pk": 357, "fields": {"app_label": "consent", "model": "datasharingconsenttextoverrides"}}, {"model": "contenttypes.contenttype", "pk": 358, "fields": {"app_label": "user_api", "model": "userretirementrequest"}}, {"model": "contenttypes.contenttype", "pk": 359, "fields": {"app_label": "django_comment_common", "model": "discussionsidmapping"}}, {"model": "contenttypes.contenttype", "pk": 360, "fields": {"app_label": "oauth_dispatch", "model": "scopedapplication"}}, {"model": "contenttypes.contenttype", "pk": 361, "fields": {"app_label": "oauth_dispatch", "model": "scopedapplicationorganization"}}, {"model": "contenttypes.contenttype", "pk": 362, "fields": {"app_label": "user_api", "model": "userretirementpartnerreportingstatus"}}, {"model": "contenttypes.contenttype", "pk": 363, "fields": {"app_label": "verify_student", "model": "manualverification"}}, {"model": "contenttypes.contenttype", "pk": 364, "fields": {"app_label": "oauth_dispatch", "model": "applicationorganization"}}, {"model": "contenttypes.contenttype", "pk": 365, "fields": {"app_label": "oauth_dispatch", "model": "applicationaccess"}}, {"model": "contenttypes.contenttype", "pk": 366, "fields": {"app_label": "video_config", "model": "migrationenqueuedcourse"}}, {"model": "contenttypes.contenttype", "pk": 367, "fields": {"app_label": "xapi", "model": "xapilrsconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 368, "fields": {"app_label": "credentials", "model": "notifycredentialsconfig"}}, {"model": "contenttypes.contenttype", "pk": 369, "fields": {"app_label": "video_config", "model": "updatedcoursevideos"}}, {"model": "contenttypes.contenttype", "pk": 370, "fields": {"app_label": "video_config", "model": "videothumbnailsetting"}}, {"model": "contenttypes.contenttype", "pk": 371, "fields": {"app_label": "course_duration_limits", "model": "coursedurationlimitconfig"}}, {"model": "contenttypes.contenttype", "pk": 372, "fields": {"app_label": "content_type_gating", "model": "contenttypegatingconfig"}}, {"model": "contenttypes.contenttype", "pk": 373, "fields": {"app_label": "grades", "model": "persistentsubsectiongradeoverridehistory"}}, {"model": "contenttypes.contenttype", "pk": 374, "fields": {"app_label": "student", "model": "accountrecovery"}}, {"model": "contenttypes.contenttype", "pk": 375, "fields": {"app_label": "enterprise", "model": "enterprisecustomertype"}}, {"model": "contenttypes.contenttype", "pk": 376, "fields": {"app_label": "student", "model": "pendingsecondaryemailchange"}}, {"model": "contenttypes.contenttype", "pk": 377, "fields": {"app_label": "lti_provider", "model": "lticonsumer"}}, {"model": "contenttypes.contenttype", "pk": 378, "fields": {"app_label": "lti_provider", "model": "gradedassignment"}}, {"model": "contenttypes.contenttype", "pk": 379, "fields": {"app_label": "lti_provider", "model": "ltiuser"}}, {"model": "contenttypes.contenttype", "pk": 380, "fields": {"app_label": "lti_provider", "model": "outcomeservice"}}, {"model": "contenttypes.contenttype", "pk": 381, "fields": {"app_label": "enterprise", "model": "systemwideenterpriserole"}}, {"model": "contenttypes.contenttype", "pk": 382, "fields": {"app_label": "enterprise", "model": "systemwideenterpriseuserroleassignment"}}, {"model": "contenttypes.contenttype", "pk": 383, "fields": {"app_label": "announcements", "model": "announcement"}}, {"model": "contenttypes.contenttype", "pk": 753, "fields": {"app_label": "enterprise", "model": "enterprisefeatureuserroleassignment"}}, {"model": "contenttypes.contenttype", "pk": 754, "fields": {"app_label": "enterprise", "model": "enterprisefeaturerole"}}, {"model": "contenttypes.contenttype", "pk": 755, "fields": {"app_label": "program_enrollments", "model": "programenrollment"}}, {"model": "contenttypes.contenttype", "pk": 756, "fields": {"app_label": "program_enrollments", "model": "historicalprogramenrollment"}}, {"model": "contenttypes.contenttype", "pk": 757, "fields": {"app_label": "program_enrollments", "model": "programcourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 758, "fields": {"app_label": "program_enrollments", "model": "historicalprogramcourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 759, "fields": {"app_label": "edx_when", "model": "contentdate"}}, {"model": "contenttypes.contenttype", "pk": 760, "fields": {"app_label": "edx_when", "model": "userdate"}}, {"model": "contenttypes.contenttype", "pk": 761, "fields": {"app_label": "edx_when", "model": "datepolicy"}}, {"model": "sites.site", "pk": 1, "fields": {"domain": "example.com", "name": "example.com"}}, {"model": "waffle.switch", "pk": 2, "fields": {"name": "enterprise_role_based_access_control", "active": false, "note": "", "created": "2019-04-08T20:44:56.819Z", "modified": "2019-04-08T20:44:56.819Z"}}, {"model": "bulk_email.courseemailtemplate", "pk": 1, "fields": {"html_template": " Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
", "plain_template": "{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n", "name": null}}, {"model": "bulk_email.courseemailtemplate", "pk": 2, "fields": {"html_template": " THIS IS A BRANDED HTML TEMPLATE Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
", "plain_template": "THIS IS A BRANDED TEXT TEMPLATE. {course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n", "name": "branded.template"}}, {"model": "embargo.country", "pk": 1, "fields": {"country": "AF"}}, {"model": "embargo.country", "pk": 2, "fields": {"country": "AX"}}, {"model": "embargo.country", "pk": 3, "fields": {"country": "AL"}}, {"model": "embargo.country", "pk": 4, "fields": {"country": "DZ"}}, {"model": "embargo.country", "pk": 5, "fields": {"country": "AS"}}, {"model": "embargo.country", "pk": 6, "fields": {"country": "AD"}}, {"model": "embargo.country", "pk": 7, "fields": {"country": "AO"}}, {"model": "embargo.country", "pk": 8, "fields": {"country": "AI"}}, {"model": "embargo.country", "pk": 9, "fields": {"country": "AQ"}}, {"model": "embargo.country", "pk": 10, "fields": {"country": "AG"}}, {"model": "embargo.country", "pk": 11, "fields": {"country": "AR"}}, {"model": "embargo.country", "pk": 12, "fields": {"country": "AM"}}, {"model": "embargo.country", "pk": 13, "fields": {"country": "AW"}}, {"model": "embargo.country", "pk": 14, "fields": {"country": "AU"}}, {"model": "embargo.country", "pk": 15, "fields": {"country": "AT"}}, {"model": "embargo.country", "pk": 16, "fields": {"country": "AZ"}}, {"model": "embargo.country", "pk": 17, "fields": {"country": "BS"}}, {"model": "embargo.country", "pk": 18, "fields": {"country": "BH"}}, {"model": "embargo.country", "pk": 19, "fields": {"country": "BD"}}, {"model": "embargo.country", "pk": 20, "fields": {"country": "BB"}}, {"model": "embargo.country", "pk": 21, "fields": {"country": "BY"}}, {"model": "embargo.country", "pk": 22, "fields": {"country": "BE"}}, {"model": "embargo.country", "pk": 23, "fields": {"country": "BZ"}}, {"model": "embargo.country", "pk": 24, "fields": {"country": "BJ"}}, {"model": "embargo.country", "pk": 25, "fields": {"country": "BM"}}, {"model": "embargo.country", "pk": 26, "fields": {"country": "BT"}}, {"model": "embargo.country", "pk": 27, "fields": {"country": "BO"}}, {"model": "embargo.country", "pk": 28, "fields": {"country": "BQ"}}, {"model": "embargo.country", "pk": 29, "fields": {"country": "BA"}}, {"model": "embargo.country", "pk": 30, "fields": {"country": "BW"}}, {"model": "embargo.country", "pk": 31, "fields": {"country": "BV"}}, {"model": "embargo.country", "pk": 32, "fields": {"country": "BR"}}, {"model": "embargo.country", "pk": 33, "fields": {"country": "IO"}}, {"model": "embargo.country", "pk": 34, "fields": {"country": "BN"}}, {"model": "embargo.country", "pk": 35, "fields": {"country": "BG"}}, {"model": "embargo.country", "pk": 36, "fields": {"country": "BF"}}, {"model": "embargo.country", "pk": 37, "fields": {"country": "BI"}}, {"model": "embargo.country", "pk": 38, "fields": {"country": "CV"}}, {"model": "embargo.country", "pk": 39, "fields": {"country": "KH"}}, {"model": "embargo.country", "pk": 40, "fields": {"country": "CM"}}, {"model": "embargo.country", "pk": 41, "fields": {"country": "CA"}}, {"model": "embargo.country", "pk": 42, "fields": {"country": "KY"}}, {"model": "embargo.country", "pk": 43, "fields": {"country": "CF"}}, {"model": "embargo.country", "pk": 44, "fields": {"country": "TD"}}, {"model": "embargo.country", "pk": 45, "fields": {"country": "CL"}}, {"model": "embargo.country", "pk": 46, "fields": {"country": "CN"}}, {"model": "embargo.country", "pk": 47, "fields": {"country": "CX"}}, {"model": "embargo.country", "pk": 48, "fields": {"country": "CC"}}, {"model": "embargo.country", "pk": 49, "fields": {"country": "CO"}}, {"model": "embargo.country", "pk": 50, "fields": {"country": "KM"}}, {"model": "embargo.country", "pk": 51, "fields": {"country": "CG"}}, {"model": "embargo.country", "pk": 52, "fields": {"country": "CD"}}, {"model": "embargo.country", "pk": 53, "fields": {"country": "CK"}}, {"model": "embargo.country", "pk": 54, "fields": {"country": "CR"}}, {"model": "embargo.country", "pk": 55, "fields": {"country": "CI"}}, {"model": "embargo.country", "pk": 56, "fields": {"country": "HR"}}, {"model": "embargo.country", "pk": 57, "fields": {"country": "CU"}}, {"model": "embargo.country", "pk": 58, "fields": {"country": "CW"}}, {"model": "embargo.country", "pk": 59, "fields": {"country": "CY"}}, {"model": "embargo.country", "pk": 60, "fields": {"country": "CZ"}}, {"model": "embargo.country", "pk": 61, "fields": {"country": "DK"}}, {"model": "embargo.country", "pk": 62, "fields": {"country": "DJ"}}, {"model": "embargo.country", "pk": 63, "fields": {"country": "DM"}}, {"model": "embargo.country", "pk": 64, "fields": {"country": "DO"}}, {"model": "embargo.country", "pk": 65, "fields": {"country": "EC"}}, {"model": "embargo.country", "pk": 66, "fields": {"country": "EG"}}, {"model": "embargo.country", "pk": 67, "fields": {"country": "SV"}}, {"model": "embargo.country", "pk": 68, "fields": {"country": "GQ"}}, {"model": "embargo.country", "pk": 69, "fields": {"country": "ER"}}, {"model": "embargo.country", "pk": 70, "fields": {"country": "EE"}}, {"model": "embargo.country", "pk": 71, "fields": {"country": "ET"}}, {"model": "embargo.country", "pk": 72, "fields": {"country": "FK"}}, {"model": "embargo.country", "pk": 73, "fields": {"country": "FO"}}, {"model": "embargo.country", "pk": 74, "fields": {"country": "FJ"}}, {"model": "embargo.country", "pk": 75, "fields": {"country": "FI"}}, {"model": "embargo.country", "pk": 76, "fields": {"country": "FR"}}, {"model": "embargo.country", "pk": 77, "fields": {"country": "GF"}}, {"model": "embargo.country", "pk": 78, "fields": {"country": "PF"}}, {"model": "embargo.country", "pk": 79, "fields": {"country": "TF"}}, {"model": "embargo.country", "pk": 80, "fields": {"country": "GA"}}, {"model": "embargo.country", "pk": 81, "fields": {"country": "GM"}}, {"model": "embargo.country", "pk": 82, "fields": {"country": "GE"}}, {"model": "embargo.country", "pk": 83, "fields": {"country": "DE"}}, {"model": "embargo.country", "pk": 84, "fields": {"country": "GH"}}, {"model": "embargo.country", "pk": 85, "fields": {"country": "GI"}}, {"model": "embargo.country", "pk": 86, "fields": {"country": "GR"}}, {"model": "embargo.country", "pk": 87, "fields": {"country": "GL"}}, {"model": "embargo.country", "pk": 88, "fields": {"country": "GD"}}, {"model": "embargo.country", "pk": 89, "fields": {"country": "GP"}}, {"model": "embargo.country", "pk": 90, "fields": {"country": "GU"}}, {"model": "embargo.country", "pk": 91, "fields": {"country": "GT"}}, {"model": "embargo.country", "pk": 92, "fields": {"country": "GG"}}, {"model": "embargo.country", "pk": 93, "fields": {"country": "GN"}}, {"model": "embargo.country", "pk": 94, "fields": {"country": "GW"}}, {"model": "embargo.country", "pk": 95, "fields": {"country": "GY"}}, {"model": "embargo.country", "pk": 96, "fields": {"country": "HT"}}, {"model": "embargo.country", "pk": 97, "fields": {"country": "HM"}}, {"model": "embargo.country", "pk": 98, "fields": {"country": "VA"}}, {"model": "embargo.country", "pk": 99, "fields": {"country": "HN"}}, {"model": "embargo.country", "pk": 100, "fields": {"country": "HK"}}, {"model": "embargo.country", "pk": 101, "fields": {"country": "HU"}}, {"model": "embargo.country", "pk": 102, "fields": {"country": "IS"}}, {"model": "embargo.country", "pk": 103, "fields": {"country": "IN"}}, {"model": "embargo.country", "pk": 104, "fields": {"country": "ID"}}, {"model": "embargo.country", "pk": 105, "fields": {"country": "IR"}}, {"model": "embargo.country", "pk": 106, "fields": {"country": "IQ"}}, {"model": "embargo.country", "pk": 107, "fields": {"country": "IE"}}, {"model": "embargo.country", "pk": 108, "fields": {"country": "IM"}}, {"model": "embargo.country", "pk": 109, "fields": {"country": "IL"}}, {"model": "embargo.country", "pk": 110, "fields": {"country": "IT"}}, {"model": "embargo.country", "pk": 111, "fields": {"country": "JM"}}, {"model": "embargo.country", "pk": 112, "fields": {"country": "JP"}}, {"model": "embargo.country", "pk": 113, "fields": {"country": "JE"}}, {"model": "embargo.country", "pk": 114, "fields": {"country": "JO"}}, {"model": "embargo.country", "pk": 115, "fields": {"country": "KZ"}}, {"model": "embargo.country", "pk": 116, "fields": {"country": "KE"}}, {"model": "embargo.country", "pk": 117, "fields": {"country": "KI"}}, {"model": "embargo.country", "pk": 118, "fields": {"country": "XK"}}, {"model": "embargo.country", "pk": 119, "fields": {"country": "KW"}}, {"model": "embargo.country", "pk": 120, "fields": {"country": "KG"}}, {"model": "embargo.country", "pk": 121, "fields": {"country": "LA"}}, {"model": "embargo.country", "pk": 122, "fields": {"country": "LV"}}, {"model": "embargo.country", "pk": 123, "fields": {"country": "LB"}}, {"model": "embargo.country", "pk": 124, "fields": {"country": "LS"}}, {"model": "embargo.country", "pk": 125, "fields": {"country": "LR"}}, {"model": "embargo.country", "pk": 126, "fields": {"country": "LY"}}, {"model": "embargo.country", "pk": 127, "fields": {"country": "LI"}}, {"model": "embargo.country", "pk": 128, "fields": {"country": "LT"}}, {"model": "embargo.country", "pk": 129, "fields": {"country": "LU"}}, {"model": "embargo.country", "pk": 130, "fields": {"country": "MO"}}, {"model": "embargo.country", "pk": 131, "fields": {"country": "MK"}}, {"model": "embargo.country", "pk": 132, "fields": {"country": "MG"}}, {"model": "embargo.country", "pk": 133, "fields": {"country": "MW"}}, {"model": "embargo.country", "pk": 134, "fields": {"country": "MY"}}, {"model": "embargo.country", "pk": 135, "fields": {"country": "MV"}}, {"model": "embargo.country", "pk": 136, "fields": {"country": "ML"}}, {"model": "embargo.country", "pk": 137, "fields": {"country": "MT"}}, {"model": "embargo.country", "pk": 138, "fields": {"country": "MH"}}, {"model": "embargo.country", "pk": 139, "fields": {"country": "MQ"}}, {"model": "embargo.country", "pk": 140, "fields": {"country": "MR"}}, {"model": "embargo.country", "pk": 141, "fields": {"country": "MU"}}, {"model": "embargo.country", "pk": 142, "fields": {"country": "YT"}}, {"model": "embargo.country", "pk": 143, "fields": {"country": "MX"}}, {"model": "embargo.country", "pk": 144, "fields": {"country": "FM"}}, {"model": "embargo.country", "pk": 145, "fields": {"country": "MD"}}, {"model": "embargo.country", "pk": 146, "fields": {"country": "MC"}}, {"model": "embargo.country", "pk": 147, "fields": {"country": "MN"}}, {"model": "embargo.country", "pk": 148, "fields": {"country": "ME"}}, {"model": "embargo.country", "pk": 149, "fields": {"country": "MS"}}, {"model": "embargo.country", "pk": 150, "fields": {"country": "MA"}}, {"model": "embargo.country", "pk": 151, "fields": {"country": "MZ"}}, {"model": "embargo.country", "pk": 152, "fields": {"country": "MM"}}, {"model": "embargo.country", "pk": 153, "fields": {"country": "NA"}}, {"model": "embargo.country", "pk": 154, "fields": {"country": "NR"}}, {"model": "embargo.country", "pk": 155, "fields": {"country": "NP"}}, {"model": "embargo.country", "pk": 156, "fields": {"country": "NL"}}, {"model": "embargo.country", "pk": 157, "fields": {"country": "NC"}}, {"model": "embargo.country", "pk": 158, "fields": {"country": "NZ"}}, {"model": "embargo.country", "pk": 159, "fields": {"country": "NI"}}, {"model": "embargo.country", "pk": 160, "fields": {"country": "NE"}}, {"model": "embargo.country", "pk": 161, "fields": {"country": "NG"}}, {"model": "embargo.country", "pk": 162, "fields": {"country": "NU"}}, {"model": "embargo.country", "pk": 163, "fields": {"country": "NF"}}, {"model": "embargo.country", "pk": 164, "fields": {"country": "KP"}}, {"model": "embargo.country", "pk": 165, "fields": {"country": "MP"}}, {"model": "embargo.country", "pk": 166, "fields": {"country": "NO"}}, {"model": "embargo.country", "pk": 167, "fields": {"country": "OM"}}, {"model": "embargo.country", "pk": 168, "fields": {"country": "PK"}}, {"model": "embargo.country", "pk": 169, "fields": {"country": "PW"}}, {"model": "embargo.country", "pk": 170, "fields": {"country": "PS"}}, {"model": "embargo.country", "pk": 171, "fields": {"country": "PA"}}, {"model": "embargo.country", "pk": 172, "fields": {"country": "PG"}}, {"model": "embargo.country", "pk": 173, "fields": {"country": "PY"}}, {"model": "embargo.country", "pk": 174, "fields": {"country": "PE"}}, {"model": "embargo.country", "pk": 175, "fields": {"country": "PH"}}, {"model": "embargo.country", "pk": 176, "fields": {"country": "PN"}}, {"model": "embargo.country", "pk": 177, "fields": {"country": "PL"}}, {"model": "embargo.country", "pk": 178, "fields": {"country": "PT"}}, {"model": "embargo.country", "pk": 179, "fields": {"country": "PR"}}, {"model": "embargo.country", "pk": 180, "fields": {"country": "QA"}}, {"model": "embargo.country", "pk": 181, "fields": {"country": "RE"}}, {"model": "embargo.country", "pk": 182, "fields": {"country": "RO"}}, {"model": "embargo.country", "pk": 183, "fields": {"country": "RU"}}, {"model": "embargo.country", "pk": 184, "fields": {"country": "RW"}}, {"model": "embargo.country", "pk": 185, "fields": {"country": "BL"}}, {"model": "embargo.country", "pk": 186, "fields": {"country": "SH"}}, {"model": "embargo.country", "pk": 187, "fields": {"country": "KN"}}, {"model": "embargo.country", "pk": 188, "fields": {"country": "LC"}}, {"model": "embargo.country", "pk": 189, "fields": {"country": "MF"}}, {"model": "embargo.country", "pk": 190, "fields": {"country": "PM"}}, {"model": "embargo.country", "pk": 191, "fields": {"country": "VC"}}, {"model": "embargo.country", "pk": 192, "fields": {"country": "WS"}}, {"model": "embargo.country", "pk": 193, "fields": {"country": "SM"}}, {"model": "embargo.country", "pk": 194, "fields": {"country": "ST"}}, {"model": "embargo.country", "pk": 195, "fields": {"country": "SA"}}, {"model": "embargo.country", "pk": 196, "fields": {"country": "SN"}}, {"model": "embargo.country", "pk": 197, "fields": {"country": "RS"}}, {"model": "embargo.country", "pk": 198, "fields": {"country": "SC"}}, {"model": "embargo.country", "pk": 199, "fields": {"country": "SL"}}, {"model": "embargo.country", "pk": 200, "fields": {"country": "SG"}}, {"model": "embargo.country", "pk": 201, "fields": {"country": "SX"}}, {"model": "embargo.country", "pk": 202, "fields": {"country": "SK"}}, {"model": "embargo.country", "pk": 203, "fields": {"country": "SI"}}, {"model": "embargo.country", "pk": 204, "fields": {"country": "SB"}}, {"model": "embargo.country", "pk": 205, "fields": {"country": "SO"}}, {"model": "embargo.country", "pk": 206, "fields": {"country": "ZA"}}, {"model": "embargo.country", "pk": 207, "fields": {"country": "GS"}}, {"model": "embargo.country", "pk": 208, "fields": {"country": "KR"}}, {"model": "embargo.country", "pk": 209, "fields": {"country": "SS"}}, {"model": "embargo.country", "pk": 210, "fields": {"country": "ES"}}, {"model": "embargo.country", "pk": 211, "fields": {"country": "LK"}}, {"model": "embargo.country", "pk": 212, "fields": {"country": "SD"}}, {"model": "embargo.country", "pk": 213, "fields": {"country": "SR"}}, {"model": "embargo.country", "pk": 214, "fields": {"country": "SJ"}}, {"model": "embargo.country", "pk": 215, "fields": {"country": "SZ"}}, {"model": "embargo.country", "pk": 216, "fields": {"country": "SE"}}, {"model": "embargo.country", "pk": 217, "fields": {"country": "CH"}}, {"model": "embargo.country", "pk": 218, "fields": {"country": "SY"}}, {"model": "embargo.country", "pk": 219, "fields": {"country": "TW"}}, {"model": "embargo.country", "pk": 220, "fields": {"country": "TJ"}}, {"model": "embargo.country", "pk": 221, "fields": {"country": "TZ"}}, {"model": "embargo.country", "pk": 222, "fields": {"country": "TH"}}, {"model": "embargo.country", "pk": 223, "fields": {"country": "TL"}}, {"model": "embargo.country", "pk": 224, "fields": {"country": "TG"}}, {"model": "embargo.country", "pk": 225, "fields": {"country": "TK"}}, {"model": "embargo.country", "pk": 226, "fields": {"country": "TO"}}, {"model": "embargo.country", "pk": 227, "fields": {"country": "TT"}}, {"model": "embargo.country", "pk": 228, "fields": {"country": "TN"}}, {"model": "embargo.country", "pk": 229, "fields": {"country": "TR"}}, {"model": "embargo.country", "pk": 230, "fields": {"country": "TM"}}, {"model": "embargo.country", "pk": 231, "fields": {"country": "TC"}}, {"model": "embargo.country", "pk": 232, "fields": {"country": "TV"}}, {"model": "embargo.country", "pk": 233, "fields": {"country": "UG"}}, {"model": "embargo.country", "pk": 234, "fields": {"country": "UA"}}, {"model": "embargo.country", "pk": 235, "fields": {"country": "AE"}}, {"model": "embargo.country", "pk": 236, "fields": {"country": "GB"}}, {"model": "embargo.country", "pk": 237, "fields": {"country": "UM"}}, {"model": "embargo.country", "pk": 238, "fields": {"country": "US"}}, {"model": "embargo.country", "pk": 239, "fields": {"country": "UY"}}, {"model": "embargo.country", "pk": 240, "fields": {"country": "UZ"}}, {"model": "embargo.country", "pk": 241, "fields": {"country": "VU"}}, {"model": "embargo.country", "pk": 242, "fields": {"country": "VE"}}, {"model": "embargo.country", "pk": 243, "fields": {"country": "VN"}}, {"model": "embargo.country", "pk": 244, "fields": {"country": "VG"}}, {"model": "embargo.country", "pk": 245, "fields": {"country": "VI"}}, {"model": "embargo.country", "pk": 246, "fields": {"country": "WF"}}, {"model": "embargo.country", "pk": 247, "fields": {"country": "EH"}}, {"model": "embargo.country", "pk": 248, "fields": {"country": "YE"}}, {"model": "embargo.country", "pk": 249, "fields": {"country": "ZM"}}, {"model": "embargo.country", "pk": 250, "fields": {"country": "ZW"}}, {"model": "edxval.profile", "pk": 1, "fields": {"profile_name": "desktop_mp4"}}, {"model": "edxval.profile", "pk": 2, "fields": {"profile_name": "desktop_webm"}}, {"model": "edxval.profile", "pk": 3, "fields": {"profile_name": "mobile_high"}}, {"model": "edxval.profile", "pk": 4, "fields": {"profile_name": "mobile_low"}}, {"model": "edxval.profile", "pk": 5, "fields": {"profile_name": "youtube"}}, {"model": "edxval.profile", "pk": 6, "fields": {"profile_name": "hls"}}, {"model": "edxval.profile", "pk": 7, "fields": {"profile_name": "audio_mp3"}}, {"model": "milestones.milestonerelationshiptype", "pk": 1, "fields": {"created": "2017-12-06T02:29:37.764Z", "modified": "2017-12-06T02:29:37.764Z", "name": "fulfills", "description": "Autogenerated milestone relationship type \"fulfills\"", "active": true}}, {"model": "milestones.milestonerelationshiptype", "pk": 2, "fields": {"created": "2017-12-06T02:29:37.767Z", "modified": "2017-12-06T02:29:37.767Z", "name": "requires", "description": "Autogenerated milestone relationship type \"requires\"", "active": true}}, {"model": "badges.coursecompleteimageconfiguration", "pk": 1, "fields": {"mode": "honor", "icon": "badges/honor_MYTwjzI.png", "default": false}}, {"model": "badges.coursecompleteimageconfiguration", "pk": 2, "fields": {"mode": "verified", "icon": "badges/verified_VzaI0PC.png", "default": false}}, {"model": "badges.coursecompleteimageconfiguration", "pk": 3, "fields": {"mode": "professional", "icon": "badges/professional_g7d5Aru.png", "default": false}}, {"model": "enterprise.enterprisecustomertype", "pk": 1, "fields": {"created": "2018-12-19T16:43:27.202Z", "modified": "2018-12-19T16:43:27.202Z", "name": "Enterprise"}}, {"model": "enterprise.systemwideenterpriserole", "pk": 1, "fields": {"created": "2019-03-08T15:47:17.791Z", "modified": "2019-03-08T15:47:17.792Z", "name": "enterprise_admin", "description": null}}, {"model": "enterprise.systemwideenterpriserole", "pk": 2, "fields": {"created": "2019-03-08T15:47:17.794Z", "modified": "2019-03-08T15:47:17.794Z", "name": "enterprise_learner", "description": null}}, {"model": "enterprise.systemwideenterpriserole", "pk": 3, "fields": {"created": "2019-03-28T19:29:40.175Z", "modified": "2019-03-28T19:29:40.175Z", "name": "enterprise_openedx_operator", "description": null}}, {"model": "enterprise.enterprisefeaturerole", "pk": 1, "fields": {"created": "2019-03-28T19:29:40.102Z", "modified": "2019-03-28T19:29:40.103Z", "name": "catalog_admin", "description": null}}, {"model": "enterprise.enterprisefeaturerole", "pk": 2, "fields": {"created": "2019-03-28T19:29:40.105Z", "modified": "2019-03-28T19:29:40.105Z", "name": "dashboard_admin", "description": null}}, {"model": "enterprise.enterprisefeaturerole", "pk": 3, "fields": {"created": "2019-03-28T19:29:40.108Z", "modified": "2019-03-28T19:29:40.108Z", "name": "enrollment_api_admin", "description": null}}, {"model": "auth.permission", "pk": 1, "fields": {"name": "Can add permission", "content_type": 2, "codename": "add_permission"}}, {"model": "auth.permission", "pk": 2, "fields": {"name": "Can change permission", "content_type": 2, "codename": "change_permission"}}, {"model": "auth.permission", "pk": 3, "fields": {"name": "Can delete permission", "content_type": 2, "codename": "delete_permission"}}, {"model": "auth.permission", "pk": 4, "fields": {"name": "Can add group", "content_type": 3, "codename": "add_group"}}, {"model": "auth.permission", "pk": 5, "fields": {"name": "Can change group", "content_type": 3, "codename": "change_group"}}, {"model": "auth.permission", "pk": 6, "fields": {"name": "Can delete group", "content_type": 3, "codename": "delete_group"}}, {"model": "auth.permission", "pk": 7, "fields": {"name": "Can add user", "content_type": 4, "codename": "add_user"}}, {"model": "auth.permission", "pk": 8, "fields": {"name": "Can change user", "content_type": 4, "codename": "change_user"}}, {"model": "auth.permission", "pk": 9, "fields": {"name": "Can delete user", "content_type": 4, "codename": "delete_user"}}, {"model": "auth.permission", "pk": 10, "fields": {"name": "Can add content type", "content_type": 5, "codename": "add_contenttype"}}, {"model": "auth.permission", "pk": 11, "fields": {"name": "Can change content type", "content_type": 5, "codename": "change_contenttype"}}, {"model": "auth.permission", "pk": 12, "fields": {"name": "Can delete content type", "content_type": 5, "codename": "delete_contenttype"}}, {"model": "auth.permission", "pk": 13, "fields": {"name": "Can add redirect", "content_type": 6, "codename": "add_redirect"}}, {"model": "auth.permission", "pk": 14, "fields": {"name": "Can change redirect", "content_type": 6, "codename": "change_redirect"}}, {"model": "auth.permission", "pk": 15, "fields": {"name": "Can delete redirect", "content_type": 6, "codename": "delete_redirect"}}, {"model": "auth.permission", "pk": 16, "fields": {"name": "Can add session", "content_type": 7, "codename": "add_session"}}, {"model": "auth.permission", "pk": 17, "fields": {"name": "Can change session", "content_type": 7, "codename": "change_session"}}, {"model": "auth.permission", "pk": 18, "fields": {"name": "Can delete session", "content_type": 7, "codename": "delete_session"}}, {"model": "auth.permission", "pk": 19, "fields": {"name": "Can add site", "content_type": 8, "codename": "add_site"}}, {"model": "auth.permission", "pk": 20, "fields": {"name": "Can change site", "content_type": 8, "codename": "change_site"}}, {"model": "auth.permission", "pk": 21, "fields": {"name": "Can delete site", "content_type": 8, "codename": "delete_site"}}, {"model": "auth.permission", "pk": 22, "fields": {"name": "Can add task state", "content_type": 9, "codename": "add_taskmeta"}}, {"model": "auth.permission", "pk": 23, "fields": {"name": "Can change task state", "content_type": 9, "codename": "change_taskmeta"}}, {"model": "auth.permission", "pk": 24, "fields": {"name": "Can delete task state", "content_type": 9, "codename": "delete_taskmeta"}}, {"model": "auth.permission", "pk": 25, "fields": {"name": "Can add saved group result", "content_type": 10, "codename": "add_tasksetmeta"}}, {"model": "auth.permission", "pk": 26, "fields": {"name": "Can change saved group result", "content_type": 10, "codename": "change_tasksetmeta"}}, {"model": "auth.permission", "pk": 27, "fields": {"name": "Can delete saved group result", "content_type": 10, "codename": "delete_tasksetmeta"}}, {"model": "auth.permission", "pk": 28, "fields": {"name": "Can add interval", "content_type": 11, "codename": "add_intervalschedule"}}, {"model": "auth.permission", "pk": 29, "fields": {"name": "Can change interval", "content_type": 11, "codename": "change_intervalschedule"}}, {"model": "auth.permission", "pk": 30, "fields": {"name": "Can delete interval", "content_type": 11, "codename": "delete_intervalschedule"}}, {"model": "auth.permission", "pk": 31, "fields": {"name": "Can add crontab", "content_type": 12, "codename": "add_crontabschedule"}}, {"model": "auth.permission", "pk": 32, "fields": {"name": "Can change crontab", "content_type": 12, "codename": "change_crontabschedule"}}, {"model": "auth.permission", "pk": 33, "fields": {"name": "Can delete crontab", "content_type": 12, "codename": "delete_crontabschedule"}}, {"model": "auth.permission", "pk": 34, "fields": {"name": "Can add periodic tasks", "content_type": 13, "codename": "add_periodictasks"}}, {"model": "auth.permission", "pk": 35, "fields": {"name": "Can change periodic tasks", "content_type": 13, "codename": "change_periodictasks"}}, {"model": "auth.permission", "pk": 36, "fields": {"name": "Can delete periodic tasks", "content_type": 13, "codename": "delete_periodictasks"}}, {"model": "auth.permission", "pk": 37, "fields": {"name": "Can add periodic task", "content_type": 14, "codename": "add_periodictask"}}, {"model": "auth.permission", "pk": 38, "fields": {"name": "Can change periodic task", "content_type": 14, "codename": "change_periodictask"}}, {"model": "auth.permission", "pk": 39, "fields": {"name": "Can delete periodic task", "content_type": 14, "codename": "delete_periodictask"}}, {"model": "auth.permission", "pk": 40, "fields": {"name": "Can add worker", "content_type": 15, "codename": "add_workerstate"}}, {"model": "auth.permission", "pk": 41, "fields": {"name": "Can change worker", "content_type": 15, "codename": "change_workerstate"}}, {"model": "auth.permission", "pk": 42, "fields": {"name": "Can delete worker", "content_type": 15, "codename": "delete_workerstate"}}, {"model": "auth.permission", "pk": 43, "fields": {"name": "Can add task", "content_type": 16, "codename": "add_taskstate"}}, {"model": "auth.permission", "pk": 44, "fields": {"name": "Can change task", "content_type": 16, "codename": "change_taskstate"}}, {"model": "auth.permission", "pk": 45, "fields": {"name": "Can delete task", "content_type": 16, "codename": "delete_taskstate"}}, {"model": "auth.permission", "pk": 46, "fields": {"name": "Can add flag", "content_type": 17, "codename": "add_flag"}}, {"model": "auth.permission", "pk": 47, "fields": {"name": "Can change flag", "content_type": 17, "codename": "change_flag"}}, {"model": "auth.permission", "pk": 48, "fields": {"name": "Can delete flag", "content_type": 17, "codename": "delete_flag"}}, {"model": "auth.permission", "pk": 49, "fields": {"name": "Can add switch", "content_type": 18, "codename": "add_switch"}}, {"model": "auth.permission", "pk": 50, "fields": {"name": "Can change switch", "content_type": 18, "codename": "change_switch"}}, {"model": "auth.permission", "pk": 51, "fields": {"name": "Can delete switch", "content_type": 18, "codename": "delete_switch"}}, {"model": "auth.permission", "pk": 52, "fields": {"name": "Can add sample", "content_type": 19, "codename": "add_sample"}}, {"model": "auth.permission", "pk": 53, "fields": {"name": "Can change sample", "content_type": 19, "codename": "change_sample"}}, {"model": "auth.permission", "pk": 54, "fields": {"name": "Can delete sample", "content_type": 19, "codename": "delete_sample"}}, {"model": "auth.permission", "pk": 55, "fields": {"name": "Can add global status message", "content_type": 20, "codename": "add_globalstatusmessage"}}, {"model": "auth.permission", "pk": 56, "fields": {"name": "Can change global status message", "content_type": 20, "codename": "change_globalstatusmessage"}}, {"model": "auth.permission", "pk": 57, "fields": {"name": "Can delete global status message", "content_type": 20, "codename": "delete_globalstatusmessage"}}, {"model": "auth.permission", "pk": 58, "fields": {"name": "Can add course message", "content_type": 21, "codename": "add_coursemessage"}}, {"model": "auth.permission", "pk": 59, "fields": {"name": "Can change course message", "content_type": 21, "codename": "change_coursemessage"}}, {"model": "auth.permission", "pk": 60, "fields": {"name": "Can delete course message", "content_type": 21, "codename": "delete_coursemessage"}}, {"model": "auth.permission", "pk": 61, "fields": {"name": "Can add asset base url config", "content_type": 22, "codename": "add_assetbaseurlconfig"}}, {"model": "auth.permission", "pk": 62, "fields": {"name": "Can change asset base url config", "content_type": 22, "codename": "change_assetbaseurlconfig"}}, {"model": "auth.permission", "pk": 63, "fields": {"name": "Can delete asset base url config", "content_type": 22, "codename": "delete_assetbaseurlconfig"}}, {"model": "auth.permission", "pk": 64, "fields": {"name": "Can add asset excluded extensions config", "content_type": 23, "codename": "add_assetexcludedextensionsconfig"}}, {"model": "auth.permission", "pk": 65, "fields": {"name": "Can change asset excluded extensions config", "content_type": 23, "codename": "change_assetexcludedextensionsconfig"}}, {"model": "auth.permission", "pk": 66, "fields": {"name": "Can delete asset excluded extensions config", "content_type": 23, "codename": "delete_assetexcludedextensionsconfig"}}, {"model": "auth.permission", "pk": 67, "fields": {"name": "Can add course asset cache ttl config", "content_type": 24, "codename": "add_courseassetcachettlconfig"}}, {"model": "auth.permission", "pk": 68, "fields": {"name": "Can change course asset cache ttl config", "content_type": 24, "codename": "change_courseassetcachettlconfig"}}, {"model": "auth.permission", "pk": 69, "fields": {"name": "Can delete course asset cache ttl config", "content_type": 24, "codename": "delete_courseassetcachettlconfig"}}, {"model": "auth.permission", "pk": 70, "fields": {"name": "Can add cdn user agents config", "content_type": 25, "codename": "add_cdnuseragentsconfig"}}, {"model": "auth.permission", "pk": 71, "fields": {"name": "Can change cdn user agents config", "content_type": 25, "codename": "change_cdnuseragentsconfig"}}, {"model": "auth.permission", "pk": 72, "fields": {"name": "Can delete cdn user agents config", "content_type": 25, "codename": "delete_cdnuseragentsconfig"}}, {"model": "auth.permission", "pk": 73, "fields": {"name": "Can add site theme", "content_type": 26, "codename": "add_sitetheme"}}, {"model": "auth.permission", "pk": 74, "fields": {"name": "Can change site theme", "content_type": 26, "codename": "change_sitetheme"}}, {"model": "auth.permission", "pk": 75, "fields": {"name": "Can delete site theme", "content_type": 26, "codename": "delete_sitetheme"}}, {"model": "auth.permission", "pk": 76, "fields": {"name": "Can add site configuration", "content_type": 27, "codename": "add_siteconfiguration"}}, {"model": "auth.permission", "pk": 77, "fields": {"name": "Can change site configuration", "content_type": 27, "codename": "change_siteconfiguration"}}, {"model": "auth.permission", "pk": 78, "fields": {"name": "Can delete site configuration", "content_type": 27, "codename": "delete_siteconfiguration"}}, {"model": "auth.permission", "pk": 79, "fields": {"name": "Can add site configuration history", "content_type": 28, "codename": "add_siteconfigurationhistory"}}, {"model": "auth.permission", "pk": 80, "fields": {"name": "Can change site configuration history", "content_type": 28, "codename": "change_siteconfigurationhistory"}}, {"model": "auth.permission", "pk": 81, "fields": {"name": "Can delete site configuration history", "content_type": 28, "codename": "delete_siteconfigurationhistory"}}, {"model": "auth.permission", "pk": 82, "fields": {"name": "Can add hls playback enabled flag", "content_type": 29, "codename": "add_hlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 83, "fields": {"name": "Can change hls playback enabled flag", "content_type": 29, "codename": "change_hlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 84, "fields": {"name": "Can delete hls playback enabled flag", "content_type": 29, "codename": "delete_hlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 85, "fields": {"name": "Can add course hls playback enabled flag", "content_type": 30, "codename": "add_coursehlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 86, "fields": {"name": "Can change course hls playback enabled flag", "content_type": 30, "codename": "change_coursehlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 87, "fields": {"name": "Can delete course hls playback enabled flag", "content_type": 30, "codename": "delete_coursehlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 88, "fields": {"name": "Can add video transcript enabled flag", "content_type": 31, "codename": "add_videotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 89, "fields": {"name": "Can change video transcript enabled flag", "content_type": 31, "codename": "change_videotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 90, "fields": {"name": "Can delete video transcript enabled flag", "content_type": 31, "codename": "delete_videotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 91, "fields": {"name": "Can add course video transcript enabled flag", "content_type": 32, "codename": "add_coursevideotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 92, "fields": {"name": "Can change course video transcript enabled flag", "content_type": 32, "codename": "change_coursevideotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 93, "fields": {"name": "Can delete course video transcript enabled flag", "content_type": 32, "codename": "delete_coursevideotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 94, "fields": {"name": "Can add video pipeline integration", "content_type": 33, "codename": "add_videopipelineintegration"}}, {"model": "auth.permission", "pk": 95, "fields": {"name": "Can change video pipeline integration", "content_type": 33, "codename": "change_videopipelineintegration"}}, {"model": "auth.permission", "pk": 96, "fields": {"name": "Can delete video pipeline integration", "content_type": 33, "codename": "delete_videopipelineintegration"}}, {"model": "auth.permission", "pk": 97, "fields": {"name": "Can add video uploads enabled by default", "content_type": 34, "codename": "add_videouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 98, "fields": {"name": "Can change video uploads enabled by default", "content_type": 34, "codename": "change_videouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 99, "fields": {"name": "Can delete video uploads enabled by default", "content_type": 34, "codename": "delete_videouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 100, "fields": {"name": "Can add course video uploads enabled by default", "content_type": 35, "codename": "add_coursevideouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 101, "fields": {"name": "Can change course video uploads enabled by default", "content_type": 35, "codename": "change_coursevideouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 102, "fields": {"name": "Can delete course video uploads enabled by default", "content_type": 35, "codename": "delete_coursevideouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 103, "fields": {"name": "Can add bookmark", "content_type": 36, "codename": "add_bookmark"}}, {"model": "auth.permission", "pk": 104, "fields": {"name": "Can change bookmark", "content_type": 36, "codename": "change_bookmark"}}, {"model": "auth.permission", "pk": 105, "fields": {"name": "Can delete bookmark", "content_type": 36, "codename": "delete_bookmark"}}, {"model": "auth.permission", "pk": 106, "fields": {"name": "Can add x block cache", "content_type": 37, "codename": "add_xblockcache"}}, {"model": "auth.permission", "pk": 107, "fields": {"name": "Can change x block cache", "content_type": 37, "codename": "change_xblockcache"}}, {"model": "auth.permission", "pk": 108, "fields": {"name": "Can delete x block cache", "content_type": 37, "codename": "delete_xblockcache"}}, {"model": "auth.permission", "pk": 109, "fields": {"name": "Can add student module", "content_type": 38, "codename": "add_studentmodule"}}, {"model": "auth.permission", "pk": 110, "fields": {"name": "Can change student module", "content_type": 38, "codename": "change_studentmodule"}}, {"model": "auth.permission", "pk": 111, "fields": {"name": "Can delete student module", "content_type": 38, "codename": "delete_studentmodule"}}, {"model": "auth.permission", "pk": 112, "fields": {"name": "Can add student module history", "content_type": 39, "codename": "add_studentmodulehistory"}}, {"model": "auth.permission", "pk": 113, "fields": {"name": "Can change student module history", "content_type": 39, "codename": "change_studentmodulehistory"}}, {"model": "auth.permission", "pk": 114, "fields": {"name": "Can delete student module history", "content_type": 39, "codename": "delete_studentmodulehistory"}}, {"model": "auth.permission", "pk": 115, "fields": {"name": "Can add x module user state summary field", "content_type": 40, "codename": "add_xmoduleuserstatesummaryfield"}}, {"model": "auth.permission", "pk": 116, "fields": {"name": "Can change x module user state summary field", "content_type": 40, "codename": "change_xmoduleuserstatesummaryfield"}}, {"model": "auth.permission", "pk": 117, "fields": {"name": "Can delete x module user state summary field", "content_type": 40, "codename": "delete_xmoduleuserstatesummaryfield"}}, {"model": "auth.permission", "pk": 118, "fields": {"name": "Can add x module student prefs field", "content_type": 41, "codename": "add_xmodulestudentprefsfield"}}, {"model": "auth.permission", "pk": 119, "fields": {"name": "Can change x module student prefs field", "content_type": 41, "codename": "change_xmodulestudentprefsfield"}}, {"model": "auth.permission", "pk": 120, "fields": {"name": "Can delete x module student prefs field", "content_type": 41, "codename": "delete_xmodulestudentprefsfield"}}, {"model": "auth.permission", "pk": 121, "fields": {"name": "Can add x module student info field", "content_type": 42, "codename": "add_xmodulestudentinfofield"}}, {"model": "auth.permission", "pk": 122, "fields": {"name": "Can change x module student info field", "content_type": 42, "codename": "change_xmodulestudentinfofield"}}, {"model": "auth.permission", "pk": 123, "fields": {"name": "Can delete x module student info field", "content_type": 42, "codename": "delete_xmodulestudentinfofield"}}, {"model": "auth.permission", "pk": 124, "fields": {"name": "Can add offline computed grade", "content_type": 43, "codename": "add_offlinecomputedgrade"}}, {"model": "auth.permission", "pk": 125, "fields": {"name": "Can change offline computed grade", "content_type": 43, "codename": "change_offlinecomputedgrade"}}, {"model": "auth.permission", "pk": 126, "fields": {"name": "Can delete offline computed grade", "content_type": 43, "codename": "delete_offlinecomputedgrade"}}, {"model": "auth.permission", "pk": 127, "fields": {"name": "Can add offline computed grade log", "content_type": 44, "codename": "add_offlinecomputedgradelog"}}, {"model": "auth.permission", "pk": 128, "fields": {"name": "Can change offline computed grade log", "content_type": 44, "codename": "change_offlinecomputedgradelog"}}, {"model": "auth.permission", "pk": 129, "fields": {"name": "Can delete offline computed grade log", "content_type": 44, "codename": "delete_offlinecomputedgradelog"}}, {"model": "auth.permission", "pk": 130, "fields": {"name": "Can add student field override", "content_type": 45, "codename": "add_studentfieldoverride"}}, {"model": "auth.permission", "pk": 131, "fields": {"name": "Can change student field override", "content_type": 45, "codename": "change_studentfieldoverride"}}, {"model": "auth.permission", "pk": 132, "fields": {"name": "Can delete student field override", "content_type": 45, "codename": "delete_studentfieldoverride"}}, {"model": "auth.permission", "pk": 133, "fields": {"name": "Can add dynamic upgrade deadline configuration", "content_type": 46, "codename": "add_dynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 134, "fields": {"name": "Can change dynamic upgrade deadline configuration", "content_type": 46, "codename": "change_dynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 135, "fields": {"name": "Can delete dynamic upgrade deadline configuration", "content_type": 46, "codename": "delete_dynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 136, "fields": {"name": "Can add course dynamic upgrade deadline configuration", "content_type": 47, "codename": "add_coursedynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 137, "fields": {"name": "Can change course dynamic upgrade deadline configuration", "content_type": 47, "codename": "change_coursedynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 138, "fields": {"name": "Can delete course dynamic upgrade deadline configuration", "content_type": 47, "codename": "delete_coursedynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 139, "fields": {"name": "Can add org dynamic upgrade deadline configuration", "content_type": 48, "codename": "add_orgdynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 140, "fields": {"name": "Can change org dynamic upgrade deadline configuration", "content_type": 48, "codename": "change_orgdynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 141, "fields": {"name": "Can delete org dynamic upgrade deadline configuration", "content_type": 48, "codename": "delete_orgdynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 142, "fields": {"name": "Can add anonymous user id", "content_type": 49, "codename": "add_anonymoususerid"}}, {"model": "auth.permission", "pk": 143, "fields": {"name": "Can change anonymous user id", "content_type": 49, "codename": "change_anonymoususerid"}}, {"model": "auth.permission", "pk": 144, "fields": {"name": "Can delete anonymous user id", "content_type": 49, "codename": "delete_anonymoususerid"}}, {"model": "auth.permission", "pk": 145, "fields": {"name": "Can add user standing", "content_type": 50, "codename": "add_userstanding"}}, {"model": "auth.permission", "pk": 146, "fields": {"name": "Can change user standing", "content_type": 50, "codename": "change_userstanding"}}, {"model": "auth.permission", "pk": 147, "fields": {"name": "Can delete user standing", "content_type": 50, "codename": "delete_userstanding"}}, {"model": "auth.permission", "pk": 148, "fields": {"name": "Can add user profile", "content_type": 51, "codename": "add_userprofile"}}, {"model": "auth.permission", "pk": 149, "fields": {"name": "Can change user profile", "content_type": 51, "codename": "change_userprofile"}}, {"model": "auth.permission", "pk": 150, "fields": {"name": "Can delete user profile", "content_type": 51, "codename": "delete_userprofile"}}, {"model": "auth.permission", "pk": 151, "fields": {"name": "Can deactivate, but NOT delete users", "content_type": 51, "codename": "can_deactivate_users"}}, {"model": "auth.permission", "pk": 152, "fields": {"name": "Can add user signup source", "content_type": 52, "codename": "add_usersignupsource"}}, {"model": "auth.permission", "pk": 153, "fields": {"name": "Can change user signup source", "content_type": 52, "codename": "change_usersignupsource"}}, {"model": "auth.permission", "pk": 154, "fields": {"name": "Can delete user signup source", "content_type": 52, "codename": "delete_usersignupsource"}}, {"model": "auth.permission", "pk": 155, "fields": {"name": "Can add user test group", "content_type": 53, "codename": "add_usertestgroup"}}, {"model": "auth.permission", "pk": 156, "fields": {"name": "Can change user test group", "content_type": 53, "codename": "change_usertestgroup"}}, {"model": "auth.permission", "pk": 157, "fields": {"name": "Can delete user test group", "content_type": 53, "codename": "delete_usertestgroup"}}, {"model": "auth.permission", "pk": 158, "fields": {"name": "Can add registration", "content_type": 54, "codename": "add_registration"}}, {"model": "auth.permission", "pk": 159, "fields": {"name": "Can change registration", "content_type": 54, "codename": "change_registration"}}, {"model": "auth.permission", "pk": 160, "fields": {"name": "Can delete registration", "content_type": 54, "codename": "delete_registration"}}, {"model": "auth.permission", "pk": 161, "fields": {"name": "Can add pending name change", "content_type": 55, "codename": "add_pendingnamechange"}}, {"model": "auth.permission", "pk": 162, "fields": {"name": "Can change pending name change", "content_type": 55, "codename": "change_pendingnamechange"}}, {"model": "auth.permission", "pk": 163, "fields": {"name": "Can delete pending name change", "content_type": 55, "codename": "delete_pendingnamechange"}}, {"model": "auth.permission", "pk": 164, "fields": {"name": "Can add pending email change", "content_type": 56, "codename": "add_pendingemailchange"}}, {"model": "auth.permission", "pk": 165, "fields": {"name": "Can change pending email change", "content_type": 56, "codename": "change_pendingemailchange"}}, {"model": "auth.permission", "pk": 166, "fields": {"name": "Can delete pending email change", "content_type": 56, "codename": "delete_pendingemailchange"}}, {"model": "auth.permission", "pk": 167, "fields": {"name": "Can add password history", "content_type": 57, "codename": "add_passwordhistory"}}, {"model": "auth.permission", "pk": 168, "fields": {"name": "Can change password history", "content_type": 57, "codename": "change_passwordhistory"}}, {"model": "auth.permission", "pk": 169, "fields": {"name": "Can delete password history", "content_type": 57, "codename": "delete_passwordhistory"}}, {"model": "auth.permission", "pk": 170, "fields": {"name": "Can add login failures", "content_type": 58, "codename": "add_loginfailures"}}, {"model": "auth.permission", "pk": 171, "fields": {"name": "Can change login failures", "content_type": 58, "codename": "change_loginfailures"}}, {"model": "auth.permission", "pk": 172, "fields": {"name": "Can delete login failures", "content_type": 58, "codename": "delete_loginfailures"}}, {"model": "auth.permission", "pk": 173, "fields": {"name": "Can add course enrollment", "content_type": 59, "codename": "add_courseenrollment"}}, {"model": "auth.permission", "pk": 174, "fields": {"name": "Can change course enrollment", "content_type": 59, "codename": "change_courseenrollment"}}, {"model": "auth.permission", "pk": 175, "fields": {"name": "Can delete course enrollment", "content_type": 59, "codename": "delete_courseenrollment"}}, {"model": "auth.permission", "pk": 176, "fields": {"name": "Can add manual enrollment audit", "content_type": 60, "codename": "add_manualenrollmentaudit"}}, {"model": "auth.permission", "pk": 177, "fields": {"name": "Can change manual enrollment audit", "content_type": 60, "codename": "change_manualenrollmentaudit"}}, {"model": "auth.permission", "pk": 178, "fields": {"name": "Can delete manual enrollment audit", "content_type": 60, "codename": "delete_manualenrollmentaudit"}}, {"model": "auth.permission", "pk": 179, "fields": {"name": "Can add course enrollment allowed", "content_type": 61, "codename": "add_courseenrollmentallowed"}}, {"model": "auth.permission", "pk": 180, "fields": {"name": "Can change course enrollment allowed", "content_type": 61, "codename": "change_courseenrollmentallowed"}}, {"model": "auth.permission", "pk": 181, "fields": {"name": "Can delete course enrollment allowed", "content_type": 61, "codename": "delete_courseenrollmentallowed"}}, {"model": "auth.permission", "pk": 182, "fields": {"name": "Can add course access role", "content_type": 62, "codename": "add_courseaccessrole"}}, {"model": "auth.permission", "pk": 183, "fields": {"name": "Can change course access role", "content_type": 62, "codename": "change_courseaccessrole"}}, {"model": "auth.permission", "pk": 184, "fields": {"name": "Can delete course access role", "content_type": 62, "codename": "delete_courseaccessrole"}}, {"model": "auth.permission", "pk": 185, "fields": {"name": "Can add dashboard configuration", "content_type": 63, "codename": "add_dashboardconfiguration"}}, {"model": "auth.permission", "pk": 186, "fields": {"name": "Can change dashboard configuration", "content_type": 63, "codename": "change_dashboardconfiguration"}}, {"model": "auth.permission", "pk": 187, "fields": {"name": "Can delete dashboard configuration", "content_type": 63, "codename": "delete_dashboardconfiguration"}}, {"model": "auth.permission", "pk": 188, "fields": {"name": "Can add linked in add to profile configuration", "content_type": 64, "codename": "add_linkedinaddtoprofileconfiguration"}}, {"model": "auth.permission", "pk": 189, "fields": {"name": "Can change linked in add to profile configuration", "content_type": 64, "codename": "change_linkedinaddtoprofileconfiguration"}}, {"model": "auth.permission", "pk": 190, "fields": {"name": "Can delete linked in add to profile configuration", "content_type": 64, "codename": "delete_linkedinaddtoprofileconfiguration"}}, {"model": "auth.permission", "pk": 191, "fields": {"name": "Can add entrance exam configuration", "content_type": 65, "codename": "add_entranceexamconfiguration"}}, {"model": "auth.permission", "pk": 192, "fields": {"name": "Can change entrance exam configuration", "content_type": 65, "codename": "change_entranceexamconfiguration"}}, {"model": "auth.permission", "pk": 193, "fields": {"name": "Can delete entrance exam configuration", "content_type": 65, "codename": "delete_entranceexamconfiguration"}}, {"model": "auth.permission", "pk": 194, "fields": {"name": "Can add language proficiency", "content_type": 66, "codename": "add_languageproficiency"}}, {"model": "auth.permission", "pk": 195, "fields": {"name": "Can change language proficiency", "content_type": 66, "codename": "change_languageproficiency"}}, {"model": "auth.permission", "pk": 196, "fields": {"name": "Can delete language proficiency", "content_type": 66, "codename": "delete_languageproficiency"}}, {"model": "auth.permission", "pk": 197, "fields": {"name": "Can add social link", "content_type": 67, "codename": "add_sociallink"}}, {"model": "auth.permission", "pk": 198, "fields": {"name": "Can change social link", "content_type": 67, "codename": "change_sociallink"}}, {"model": "auth.permission", "pk": 199, "fields": {"name": "Can delete social link", "content_type": 67, "codename": "delete_sociallink"}}, {"model": "auth.permission", "pk": 200, "fields": {"name": "Can add course enrollment attribute", "content_type": 68, "codename": "add_courseenrollmentattribute"}}, {"model": "auth.permission", "pk": 201, "fields": {"name": "Can change course enrollment attribute", "content_type": 68, "codename": "change_courseenrollmentattribute"}}, {"model": "auth.permission", "pk": 202, "fields": {"name": "Can delete course enrollment attribute", "content_type": 68, "codename": "delete_courseenrollmentattribute"}}, {"model": "auth.permission", "pk": 203, "fields": {"name": "Can add enrollment refund configuration", "content_type": 69, "codename": "add_enrollmentrefundconfiguration"}}, {"model": "auth.permission", "pk": 204, "fields": {"name": "Can change enrollment refund configuration", "content_type": 69, "codename": "change_enrollmentrefundconfiguration"}}, {"model": "auth.permission", "pk": 205, "fields": {"name": "Can delete enrollment refund configuration", "content_type": 69, "codename": "delete_enrollmentrefundconfiguration"}}, {"model": "auth.permission", "pk": 206, "fields": {"name": "Can add registration cookie configuration", "content_type": 70, "codename": "add_registrationcookieconfiguration"}}, {"model": "auth.permission", "pk": 207, "fields": {"name": "Can change registration cookie configuration", "content_type": 70, "codename": "change_registrationcookieconfiguration"}}, {"model": "auth.permission", "pk": 208, "fields": {"name": "Can delete registration cookie configuration", "content_type": 70, "codename": "delete_registrationcookieconfiguration"}}, {"model": "auth.permission", "pk": 209, "fields": {"name": "Can add user attribute", "content_type": 71, "codename": "add_userattribute"}}, {"model": "auth.permission", "pk": 210, "fields": {"name": "Can change user attribute", "content_type": 71, "codename": "change_userattribute"}}, {"model": "auth.permission", "pk": 211, "fields": {"name": "Can delete user attribute", "content_type": 71, "codename": "delete_userattribute"}}, {"model": "auth.permission", "pk": 212, "fields": {"name": "Can add logout view configuration", "content_type": 72, "codename": "add_logoutviewconfiguration"}}, {"model": "auth.permission", "pk": 213, "fields": {"name": "Can change logout view configuration", "content_type": 72, "codename": "change_logoutviewconfiguration"}}, {"model": "auth.permission", "pk": 214, "fields": {"name": "Can delete logout view configuration", "content_type": 72, "codename": "delete_logoutviewconfiguration"}}, {"model": "auth.permission", "pk": 215, "fields": {"name": "Can add tracking log", "content_type": 73, "codename": "add_trackinglog"}}, {"model": "auth.permission", "pk": 216, "fields": {"name": "Can change tracking log", "content_type": 73, "codename": "change_trackinglog"}}, {"model": "auth.permission", "pk": 217, "fields": {"name": "Can delete tracking log", "content_type": 73, "codename": "delete_trackinglog"}}, {"model": "auth.permission", "pk": 218, "fields": {"name": "Can add rate limit configuration", "content_type": 74, "codename": "add_ratelimitconfiguration"}}, {"model": "auth.permission", "pk": 219, "fields": {"name": "Can change rate limit configuration", "content_type": 74, "codename": "change_ratelimitconfiguration"}}, {"model": "auth.permission", "pk": 220, "fields": {"name": "Can delete rate limit configuration", "content_type": 74, "codename": "delete_ratelimitconfiguration"}}, {"model": "auth.permission", "pk": 221, "fields": {"name": "Can add certificate whitelist", "content_type": 75, "codename": "add_certificatewhitelist"}}, {"model": "auth.permission", "pk": 222, "fields": {"name": "Can change certificate whitelist", "content_type": 75, "codename": "change_certificatewhitelist"}}, {"model": "auth.permission", "pk": 223, "fields": {"name": "Can delete certificate whitelist", "content_type": 75, "codename": "delete_certificatewhitelist"}}, {"model": "auth.permission", "pk": 224, "fields": {"name": "Can add generated certificate", "content_type": 76, "codename": "add_generatedcertificate"}}, {"model": "auth.permission", "pk": 225, "fields": {"name": "Can change generated certificate", "content_type": 76, "codename": "change_generatedcertificate"}}, {"model": "auth.permission", "pk": 226, "fields": {"name": "Can delete generated certificate", "content_type": 76, "codename": "delete_generatedcertificate"}}, {"model": "auth.permission", "pk": 227, "fields": {"name": "Can add certificate generation history", "content_type": 77, "codename": "add_certificategenerationhistory"}}, {"model": "auth.permission", "pk": 228, "fields": {"name": "Can change certificate generation history", "content_type": 77, "codename": "change_certificategenerationhistory"}}, {"model": "auth.permission", "pk": 229, "fields": {"name": "Can delete certificate generation history", "content_type": 77, "codename": "delete_certificategenerationhistory"}}, {"model": "auth.permission", "pk": 230, "fields": {"name": "Can add certificate invalidation", "content_type": 78, "codename": "add_certificateinvalidation"}}, {"model": "auth.permission", "pk": 231, "fields": {"name": "Can change certificate invalidation", "content_type": 78, "codename": "change_certificateinvalidation"}}, {"model": "auth.permission", "pk": 232, "fields": {"name": "Can delete certificate invalidation", "content_type": 78, "codename": "delete_certificateinvalidation"}}, {"model": "auth.permission", "pk": 233, "fields": {"name": "Can add example certificate set", "content_type": 79, "codename": "add_examplecertificateset"}}, {"model": "auth.permission", "pk": 234, "fields": {"name": "Can change example certificate set", "content_type": 79, "codename": "change_examplecertificateset"}}, {"model": "auth.permission", "pk": 235, "fields": {"name": "Can delete example certificate set", "content_type": 79, "codename": "delete_examplecertificateset"}}, {"model": "auth.permission", "pk": 236, "fields": {"name": "Can add example certificate", "content_type": 80, "codename": "add_examplecertificate"}}, {"model": "auth.permission", "pk": 237, "fields": {"name": "Can change example certificate", "content_type": 80, "codename": "change_examplecertificate"}}, {"model": "auth.permission", "pk": 238, "fields": {"name": "Can delete example certificate", "content_type": 80, "codename": "delete_examplecertificate"}}, {"model": "auth.permission", "pk": 239, "fields": {"name": "Can add certificate generation course setting", "content_type": 81, "codename": "add_certificategenerationcoursesetting"}}, {"model": "auth.permission", "pk": 240, "fields": {"name": "Can change certificate generation course setting", "content_type": 81, "codename": "change_certificategenerationcoursesetting"}}, {"model": "auth.permission", "pk": 241, "fields": {"name": "Can delete certificate generation course setting", "content_type": 81, "codename": "delete_certificategenerationcoursesetting"}}, {"model": "auth.permission", "pk": 242, "fields": {"name": "Can add certificate generation configuration", "content_type": 82, "codename": "add_certificategenerationconfiguration"}}, {"model": "auth.permission", "pk": 243, "fields": {"name": "Can change certificate generation configuration", "content_type": 82, "codename": "change_certificategenerationconfiguration"}}, {"model": "auth.permission", "pk": 244, "fields": {"name": "Can delete certificate generation configuration", "content_type": 82, "codename": "delete_certificategenerationconfiguration"}}, {"model": "auth.permission", "pk": 245, "fields": {"name": "Can add certificate html view configuration", "content_type": 83, "codename": "add_certificatehtmlviewconfiguration"}}, {"model": "auth.permission", "pk": 246, "fields": {"name": "Can change certificate html view configuration", "content_type": 83, "codename": "change_certificatehtmlviewconfiguration"}}, {"model": "auth.permission", "pk": 247, "fields": {"name": "Can delete certificate html view configuration", "content_type": 83, "codename": "delete_certificatehtmlviewconfiguration"}}, {"model": "auth.permission", "pk": 248, "fields": {"name": "Can add certificate template", "content_type": 84, "codename": "add_certificatetemplate"}}, {"model": "auth.permission", "pk": 249, "fields": {"name": "Can change certificate template", "content_type": 84, "codename": "change_certificatetemplate"}}, {"model": "auth.permission", "pk": 250, "fields": {"name": "Can delete certificate template", "content_type": 84, "codename": "delete_certificatetemplate"}}, {"model": "auth.permission", "pk": 251, "fields": {"name": "Can add certificate template asset", "content_type": 85, "codename": "add_certificatetemplateasset"}}, {"model": "auth.permission", "pk": 252, "fields": {"name": "Can change certificate template asset", "content_type": 85, "codename": "change_certificatetemplateasset"}}, {"model": "auth.permission", "pk": 253, "fields": {"name": "Can delete certificate template asset", "content_type": 85, "codename": "delete_certificatetemplateasset"}}, {"model": "auth.permission", "pk": 254, "fields": {"name": "Can add instructor task", "content_type": 86, "codename": "add_instructortask"}}, {"model": "auth.permission", "pk": 255, "fields": {"name": "Can change instructor task", "content_type": 86, "codename": "change_instructortask"}}, {"model": "auth.permission", "pk": 256, "fields": {"name": "Can delete instructor task", "content_type": 86, "codename": "delete_instructortask"}}, {"model": "auth.permission", "pk": 257, "fields": {"name": "Can add grade report setting", "content_type": 87, "codename": "add_gradereportsetting"}}, {"model": "auth.permission", "pk": 258, "fields": {"name": "Can change grade report setting", "content_type": 87, "codename": "change_gradereportsetting"}}, {"model": "auth.permission", "pk": 259, "fields": {"name": "Can delete grade report setting", "content_type": 87, "codename": "delete_gradereportsetting"}}, {"model": "auth.permission", "pk": 260, "fields": {"name": "Can add course user group", "content_type": 88, "codename": "add_courseusergroup"}}, {"model": "auth.permission", "pk": 261, "fields": {"name": "Can change course user group", "content_type": 88, "codename": "change_courseusergroup"}}, {"model": "auth.permission", "pk": 262, "fields": {"name": "Can delete course user group", "content_type": 88, "codename": "delete_courseusergroup"}}, {"model": "auth.permission", "pk": 263, "fields": {"name": "Can add cohort membership", "content_type": 89, "codename": "add_cohortmembership"}}, {"model": "auth.permission", "pk": 264, "fields": {"name": "Can change cohort membership", "content_type": 89, "codename": "change_cohortmembership"}}, {"model": "auth.permission", "pk": 265, "fields": {"name": "Can delete cohort membership", "content_type": 89, "codename": "delete_cohortmembership"}}, {"model": "auth.permission", "pk": 266, "fields": {"name": "Can add course user group partition group", "content_type": 90, "codename": "add_courseusergrouppartitiongroup"}}, {"model": "auth.permission", "pk": 267, "fields": {"name": "Can change course user group partition group", "content_type": 90, "codename": "change_courseusergrouppartitiongroup"}}, {"model": "auth.permission", "pk": 268, "fields": {"name": "Can delete course user group partition group", "content_type": 90, "codename": "delete_courseusergrouppartitiongroup"}}, {"model": "auth.permission", "pk": 269, "fields": {"name": "Can add course cohorts settings", "content_type": 91, "codename": "add_coursecohortssettings"}}, {"model": "auth.permission", "pk": 270, "fields": {"name": "Can change course cohorts settings", "content_type": 91, "codename": "change_coursecohortssettings"}}, {"model": "auth.permission", "pk": 271, "fields": {"name": "Can delete course cohorts settings", "content_type": 91, "codename": "delete_coursecohortssettings"}}, {"model": "auth.permission", "pk": 272, "fields": {"name": "Can add course cohort", "content_type": 92, "codename": "add_coursecohort"}}, {"model": "auth.permission", "pk": 273, "fields": {"name": "Can change course cohort", "content_type": 92, "codename": "change_coursecohort"}}, {"model": "auth.permission", "pk": 274, "fields": {"name": "Can delete course cohort", "content_type": 92, "codename": "delete_coursecohort"}}, {"model": "auth.permission", "pk": 275, "fields": {"name": "Can add unregistered learner cohort assignments", "content_type": 93, "codename": "add_unregisteredlearnercohortassignments"}}, {"model": "auth.permission", "pk": 276, "fields": {"name": "Can change unregistered learner cohort assignments", "content_type": 93, "codename": "change_unregisteredlearnercohortassignments"}}, {"model": "auth.permission", "pk": 277, "fields": {"name": "Can delete unregistered learner cohort assignments", "content_type": 93, "codename": "delete_unregisteredlearnercohortassignments"}}, {"model": "auth.permission", "pk": 278, "fields": {"name": "Can add target", "content_type": 94, "codename": "add_target"}}, {"model": "auth.permission", "pk": 279, "fields": {"name": "Can change target", "content_type": 94, "codename": "change_target"}}, {"model": "auth.permission", "pk": 280, "fields": {"name": "Can delete target", "content_type": 94, "codename": "delete_target"}}, {"model": "auth.permission", "pk": 281, "fields": {"name": "Can add cohort target", "content_type": 95, "codename": "add_cohorttarget"}}, {"model": "auth.permission", "pk": 282, "fields": {"name": "Can change cohort target", "content_type": 95, "codename": "change_cohorttarget"}}, {"model": "auth.permission", "pk": 283, "fields": {"name": "Can delete cohort target", "content_type": 95, "codename": "delete_cohorttarget"}}, {"model": "auth.permission", "pk": 284, "fields": {"name": "Can add course mode target", "content_type": 96, "codename": "add_coursemodetarget"}}, {"model": "auth.permission", "pk": 285, "fields": {"name": "Can change course mode target", "content_type": 96, "codename": "change_coursemodetarget"}}, {"model": "auth.permission", "pk": 286, "fields": {"name": "Can delete course mode target", "content_type": 96, "codename": "delete_coursemodetarget"}}, {"model": "auth.permission", "pk": 287, "fields": {"name": "Can add course email", "content_type": 97, "codename": "add_courseemail"}}, {"model": "auth.permission", "pk": 288, "fields": {"name": "Can change course email", "content_type": 97, "codename": "change_courseemail"}}, {"model": "auth.permission", "pk": 289, "fields": {"name": "Can delete course email", "content_type": 97, "codename": "delete_courseemail"}}, {"model": "auth.permission", "pk": 290, "fields": {"name": "Can add optout", "content_type": 98, "codename": "add_optout"}}, {"model": "auth.permission", "pk": 291, "fields": {"name": "Can change optout", "content_type": 98, "codename": "change_optout"}}, {"model": "auth.permission", "pk": 292, "fields": {"name": "Can delete optout", "content_type": 98, "codename": "delete_optout"}}, {"model": "auth.permission", "pk": 293, "fields": {"name": "Can add course email template", "content_type": 99, "codename": "add_courseemailtemplate"}}, {"model": "auth.permission", "pk": 294, "fields": {"name": "Can change course email template", "content_type": 99, "codename": "change_courseemailtemplate"}}, {"model": "auth.permission", "pk": 295, "fields": {"name": "Can delete course email template", "content_type": 99, "codename": "delete_courseemailtemplate"}}, {"model": "auth.permission", "pk": 296, "fields": {"name": "Can add course authorization", "content_type": 100, "codename": "add_courseauthorization"}}, {"model": "auth.permission", "pk": 297, "fields": {"name": "Can change course authorization", "content_type": 100, "codename": "change_courseauthorization"}}, {"model": "auth.permission", "pk": 298, "fields": {"name": "Can delete course authorization", "content_type": 100, "codename": "delete_courseauthorization"}}, {"model": "auth.permission", "pk": 299, "fields": {"name": "Can add bulk email flag", "content_type": 101, "codename": "add_bulkemailflag"}}, {"model": "auth.permission", "pk": 300, "fields": {"name": "Can change bulk email flag", "content_type": 101, "codename": "change_bulkemailflag"}}, {"model": "auth.permission", "pk": 301, "fields": {"name": "Can delete bulk email flag", "content_type": 101, "codename": "delete_bulkemailflag"}}, {"model": "auth.permission", "pk": 302, "fields": {"name": "Can add branding info config", "content_type": 102, "codename": "add_brandinginfoconfig"}}, {"model": "auth.permission", "pk": 303, "fields": {"name": "Can change branding info config", "content_type": 102, "codename": "change_brandinginfoconfig"}}, {"model": "auth.permission", "pk": 304, "fields": {"name": "Can delete branding info config", "content_type": 102, "codename": "delete_brandinginfoconfig"}}, {"model": "auth.permission", "pk": 305, "fields": {"name": "Can add branding api config", "content_type": 103, "codename": "add_brandingapiconfig"}}, {"model": "auth.permission", "pk": 306, "fields": {"name": "Can change branding api config", "content_type": 103, "codename": "change_brandingapiconfig"}}, {"model": "auth.permission", "pk": 307, "fields": {"name": "Can delete branding api config", "content_type": 103, "codename": "delete_brandingapiconfig"}}, {"model": "auth.permission", "pk": 308, "fields": {"name": "Can add visible blocks", "content_type": 104, "codename": "add_visibleblocks"}}, {"model": "auth.permission", "pk": 309, "fields": {"name": "Can change visible blocks", "content_type": 104, "codename": "change_visibleblocks"}}, {"model": "auth.permission", "pk": 310, "fields": {"name": "Can delete visible blocks", "content_type": 104, "codename": "delete_visibleblocks"}}, {"model": "auth.permission", "pk": 311, "fields": {"name": "Can add persistent subsection grade", "content_type": 105, "codename": "add_persistentsubsectiongrade"}}, {"model": "auth.permission", "pk": 312, "fields": {"name": "Can change persistent subsection grade", "content_type": 105, "codename": "change_persistentsubsectiongrade"}}, {"model": "auth.permission", "pk": 313, "fields": {"name": "Can delete persistent subsection grade", "content_type": 105, "codename": "delete_persistentsubsectiongrade"}}, {"model": "auth.permission", "pk": 314, "fields": {"name": "Can add persistent course grade", "content_type": 106, "codename": "add_persistentcoursegrade"}}, {"model": "auth.permission", "pk": 315, "fields": {"name": "Can change persistent course grade", "content_type": 106, "codename": "change_persistentcoursegrade"}}, {"model": "auth.permission", "pk": 316, "fields": {"name": "Can delete persistent course grade", "content_type": 106, "codename": "delete_persistentcoursegrade"}}, {"model": "auth.permission", "pk": 317, "fields": {"name": "Can add persistent subsection grade override", "content_type": 107, "codename": "add_persistentsubsectiongradeoverride"}}, {"model": "auth.permission", "pk": 318, "fields": {"name": "Can change persistent subsection grade override", "content_type": 107, "codename": "change_persistentsubsectiongradeoverride"}}, {"model": "auth.permission", "pk": 319, "fields": {"name": "Can delete persistent subsection grade override", "content_type": 107, "codename": "delete_persistentsubsectiongradeoverride"}}, {"model": "auth.permission", "pk": 320, "fields": {"name": "Can add persistent grades enabled flag", "content_type": 108, "codename": "add_persistentgradesenabledflag"}}, {"model": "auth.permission", "pk": 321, "fields": {"name": "Can change persistent grades enabled flag", "content_type": 108, "codename": "change_persistentgradesenabledflag"}}, {"model": "auth.permission", "pk": 322, "fields": {"name": "Can delete persistent grades enabled flag", "content_type": 108, "codename": "delete_persistentgradesenabledflag"}}, {"model": "auth.permission", "pk": 323, "fields": {"name": "Can add course persistent grades flag", "content_type": 109, "codename": "add_coursepersistentgradesflag"}}, {"model": "auth.permission", "pk": 324, "fields": {"name": "Can change course persistent grades flag", "content_type": 109, "codename": "change_coursepersistentgradesflag"}}, {"model": "auth.permission", "pk": 325, "fields": {"name": "Can delete course persistent grades flag", "content_type": 109, "codename": "delete_coursepersistentgradesflag"}}, {"model": "auth.permission", "pk": 326, "fields": {"name": "Can add compute grades setting", "content_type": 110, "codename": "add_computegradessetting"}}, {"model": "auth.permission", "pk": 327, "fields": {"name": "Can change compute grades setting", "content_type": 110, "codename": "change_computegradessetting"}}, {"model": "auth.permission", "pk": 328, "fields": {"name": "Can delete compute grades setting", "content_type": 110, "codename": "delete_computegradessetting"}}, {"model": "auth.permission", "pk": 329, "fields": {"name": "Can add external auth map", "content_type": 111, "codename": "add_externalauthmap"}}, {"model": "auth.permission", "pk": 330, "fields": {"name": "Can change external auth map", "content_type": 111, "codename": "change_externalauthmap"}}, {"model": "auth.permission", "pk": 331, "fields": {"name": "Can delete external auth map", "content_type": 111, "codename": "delete_externalauthmap"}}, {"model": "auth.permission", "pk": 332, "fields": {"name": "Can add nonce", "content_type": 112, "codename": "add_nonce"}}, {"model": "auth.permission", "pk": 333, "fields": {"name": "Can change nonce", "content_type": 112, "codename": "change_nonce"}}, {"model": "auth.permission", "pk": 334, "fields": {"name": "Can delete nonce", "content_type": 112, "codename": "delete_nonce"}}, {"model": "auth.permission", "pk": 335, "fields": {"name": "Can add association", "content_type": 113, "codename": "add_association"}}, {"model": "auth.permission", "pk": 336, "fields": {"name": "Can change association", "content_type": 113, "codename": "change_association"}}, {"model": "auth.permission", "pk": 337, "fields": {"name": "Can delete association", "content_type": 113, "codename": "delete_association"}}, {"model": "auth.permission", "pk": 338, "fields": {"name": "Can add user open id", "content_type": 114, "codename": "add_useropenid"}}, {"model": "auth.permission", "pk": 339, "fields": {"name": "Can change user open id", "content_type": 114, "codename": "change_useropenid"}}, {"model": "auth.permission", "pk": 340, "fields": {"name": "Can delete user open id", "content_type": 114, "codename": "delete_useropenid"}}, {"model": "auth.permission", "pk": 341, "fields": {"name": "The OpenID has been verified", "content_type": 114, "codename": "account_verified"}}, {"model": "auth.permission", "pk": 342, "fields": {"name": "Can add client", "content_type": 115, "codename": "add_client"}}, {"model": "auth.permission", "pk": 343, "fields": {"name": "Can change client", "content_type": 115, "codename": "change_client"}}, {"model": "auth.permission", "pk": 344, "fields": {"name": "Can delete client", "content_type": 115, "codename": "delete_client"}}, {"model": "auth.permission", "pk": 345, "fields": {"name": "Can add grant", "content_type": 116, "codename": "add_grant"}}, {"model": "auth.permission", "pk": 346, "fields": {"name": "Can change grant", "content_type": 116, "codename": "change_grant"}}, {"model": "auth.permission", "pk": 347, "fields": {"name": "Can delete grant", "content_type": 116, "codename": "delete_grant"}}, {"model": "auth.permission", "pk": 348, "fields": {"name": "Can add access token", "content_type": 117, "codename": "add_accesstoken"}}, {"model": "auth.permission", "pk": 349, "fields": {"name": "Can change access token", "content_type": 117, "codename": "change_accesstoken"}}, {"model": "auth.permission", "pk": 350, "fields": {"name": "Can delete access token", "content_type": 117, "codename": "delete_accesstoken"}}, {"model": "auth.permission", "pk": 351, "fields": {"name": "Can add refresh token", "content_type": 118, "codename": "add_refreshtoken"}}, {"model": "auth.permission", "pk": 352, "fields": {"name": "Can change refresh token", "content_type": 118, "codename": "change_refreshtoken"}}, {"model": "auth.permission", "pk": 353, "fields": {"name": "Can delete refresh token", "content_type": 118, "codename": "delete_refreshtoken"}}, {"model": "auth.permission", "pk": 354, "fields": {"name": "Can add trusted client", "content_type": 119, "codename": "add_trustedclient"}}, {"model": "auth.permission", "pk": 355, "fields": {"name": "Can change trusted client", "content_type": 119, "codename": "change_trustedclient"}}, {"model": "auth.permission", "pk": 356, "fields": {"name": "Can delete trusted client", "content_type": 119, "codename": "delete_trustedclient"}}, {"model": "auth.permission", "pk": 357, "fields": {"name": "Can add application", "content_type": 120, "codename": "add_application"}}, {"model": "auth.permission", "pk": 358, "fields": {"name": "Can change application", "content_type": 120, "codename": "change_application"}}, {"model": "auth.permission", "pk": 359, "fields": {"name": "Can delete application", "content_type": 120, "codename": "delete_application"}}, {"model": "auth.permission", "pk": 360, "fields": {"name": "Can add grant", "content_type": 121, "codename": "add_grant"}}, {"model": "auth.permission", "pk": 361, "fields": {"name": "Can change grant", "content_type": 121, "codename": "change_grant"}}, {"model": "auth.permission", "pk": 362, "fields": {"name": "Can delete grant", "content_type": 121, "codename": "delete_grant"}}, {"model": "auth.permission", "pk": 363, "fields": {"name": "Can add access token", "content_type": 122, "codename": "add_accesstoken"}}, {"model": "auth.permission", "pk": 364, "fields": {"name": "Can change access token", "content_type": 122, "codename": "change_accesstoken"}}, {"model": "auth.permission", "pk": 365, "fields": {"name": "Can delete access token", "content_type": 122, "codename": "delete_accesstoken"}}, {"model": "auth.permission", "pk": 366, "fields": {"name": "Can add refresh token", "content_type": 123, "codename": "add_refreshtoken"}}, {"model": "auth.permission", "pk": 367, "fields": {"name": "Can change refresh token", "content_type": 123, "codename": "change_refreshtoken"}}, {"model": "auth.permission", "pk": 368, "fields": {"name": "Can delete refresh token", "content_type": 123, "codename": "delete_refreshtoken"}}, {"model": "auth.permission", "pk": 369, "fields": {"name": "Can add restricted application", "content_type": 124, "codename": "add_restrictedapplication"}}, {"model": "auth.permission", "pk": 370, "fields": {"name": "Can change restricted application", "content_type": 124, "codename": "change_restrictedapplication"}}, {"model": "auth.permission", "pk": 371, "fields": {"name": "Can delete restricted application", "content_type": 124, "codename": "delete_restrictedapplication"}}, {"model": "auth.permission", "pk": 372, "fields": {"name": "Can add Provider Configuration (OAuth)", "content_type": 125, "codename": "add_oauth2providerconfig"}}, {"model": "auth.permission", "pk": 373, "fields": {"name": "Can change Provider Configuration (OAuth)", "content_type": 125, "codename": "change_oauth2providerconfig"}}, {"model": "auth.permission", "pk": 374, "fields": {"name": "Can delete Provider Configuration (OAuth)", "content_type": 125, "codename": "delete_oauth2providerconfig"}}, {"model": "auth.permission", "pk": 375, "fields": {"name": "Can add Provider Configuration (SAML IdP)", "content_type": 126, "codename": "add_samlproviderconfig"}}, {"model": "auth.permission", "pk": 376, "fields": {"name": "Can change Provider Configuration (SAML IdP)", "content_type": 126, "codename": "change_samlproviderconfig"}}, {"model": "auth.permission", "pk": 377, "fields": {"name": "Can delete Provider Configuration (SAML IdP)", "content_type": 126, "codename": "delete_samlproviderconfig"}}, {"model": "auth.permission", "pk": 378, "fields": {"name": "Can add SAML Configuration", "content_type": 127, "codename": "add_samlconfiguration"}}, {"model": "auth.permission", "pk": 379, "fields": {"name": "Can change SAML Configuration", "content_type": 127, "codename": "change_samlconfiguration"}}, {"model": "auth.permission", "pk": 380, "fields": {"name": "Can delete SAML Configuration", "content_type": 127, "codename": "delete_samlconfiguration"}}, {"model": "auth.permission", "pk": 381, "fields": {"name": "Can add SAML Provider Data", "content_type": 128, "codename": "add_samlproviderdata"}}, {"model": "auth.permission", "pk": 382, "fields": {"name": "Can change SAML Provider Data", "content_type": 128, "codename": "change_samlproviderdata"}}, {"model": "auth.permission", "pk": 383, "fields": {"name": "Can delete SAML Provider Data", "content_type": 128, "codename": "delete_samlproviderdata"}}, {"model": "auth.permission", "pk": 384, "fields": {"name": "Can add Provider Configuration (LTI)", "content_type": 129, "codename": "add_ltiproviderconfig"}}, {"model": "auth.permission", "pk": 385, "fields": {"name": "Can change Provider Configuration (LTI)", "content_type": 129, "codename": "change_ltiproviderconfig"}}, {"model": "auth.permission", "pk": 386, "fields": {"name": "Can delete Provider Configuration (LTI)", "content_type": 129, "codename": "delete_ltiproviderconfig"}}, {"model": "auth.permission", "pk": 387, "fields": {"name": "Can add Provider API Permission", "content_type": 130, "codename": "add_providerapipermissions"}}, {"model": "auth.permission", "pk": 388, "fields": {"name": "Can change Provider API Permission", "content_type": 130, "codename": "change_providerapipermissions"}}, {"model": "auth.permission", "pk": 389, "fields": {"name": "Can delete Provider API Permission", "content_type": 130, "codename": "delete_providerapipermissions"}}, {"model": "auth.permission", "pk": 390, "fields": {"name": "Can add nonce", "content_type": 131, "codename": "add_nonce"}}, {"model": "auth.permission", "pk": 391, "fields": {"name": "Can change nonce", "content_type": 131, "codename": "change_nonce"}}, {"model": "auth.permission", "pk": 392, "fields": {"name": "Can delete nonce", "content_type": 131, "codename": "delete_nonce"}}, {"model": "auth.permission", "pk": 393, "fields": {"name": "Can add scope", "content_type": 132, "codename": "add_scope"}}, {"model": "auth.permission", "pk": 394, "fields": {"name": "Can change scope", "content_type": 132, "codename": "change_scope"}}, {"model": "auth.permission", "pk": 395, "fields": {"name": "Can delete scope", "content_type": 132, "codename": "delete_scope"}}, {"model": "auth.permission", "pk": 396, "fields": {"name": "Can add resource", "content_type": 132, "codename": "add_resource"}}, {"model": "auth.permission", "pk": 397, "fields": {"name": "Can change resource", "content_type": 132, "codename": "change_resource"}}, {"model": "auth.permission", "pk": 398, "fields": {"name": "Can delete resource", "content_type": 132, "codename": "delete_resource"}}, {"model": "auth.permission", "pk": 399, "fields": {"name": "Can add consumer", "content_type": 133, "codename": "add_consumer"}}, {"model": "auth.permission", "pk": 400, "fields": {"name": "Can change consumer", "content_type": 133, "codename": "change_consumer"}}, {"model": "auth.permission", "pk": 401, "fields": {"name": "Can delete consumer", "content_type": 133, "codename": "delete_consumer"}}, {"model": "auth.permission", "pk": 402, "fields": {"name": "Can add token", "content_type": 134, "codename": "add_token"}}, {"model": "auth.permission", "pk": 403, "fields": {"name": "Can change token", "content_type": 134, "codename": "change_token"}}, {"model": "auth.permission", "pk": 404, "fields": {"name": "Can delete token", "content_type": 134, "codename": "delete_token"}}, {"model": "auth.permission", "pk": 405, "fields": {"name": "Can add article", "content_type": 136, "codename": "add_article"}}, {"model": "auth.permission", "pk": 406, "fields": {"name": "Can change article", "content_type": 136, "codename": "change_article"}}, {"model": "auth.permission", "pk": 407, "fields": {"name": "Can delete article", "content_type": 136, "codename": "delete_article"}}, {"model": "auth.permission", "pk": 408, "fields": {"name": "Can edit all articles and lock/unlock/restore", "content_type": 136, "codename": "moderate"}}, {"model": "auth.permission", "pk": 409, "fields": {"name": "Can change ownership of any article", "content_type": 136, "codename": "assign"}}, {"model": "auth.permission", "pk": 410, "fields": {"name": "Can assign permissions to other users", "content_type": 136, "codename": "grant"}}, {"model": "auth.permission", "pk": 411, "fields": {"name": "Can add Article for object", "content_type": 137, "codename": "add_articleforobject"}}, {"model": "auth.permission", "pk": 412, "fields": {"name": "Can change Article for object", "content_type": 137, "codename": "change_articleforobject"}}, {"model": "auth.permission", "pk": 413, "fields": {"name": "Can delete Article for object", "content_type": 137, "codename": "delete_articleforobject"}}, {"model": "auth.permission", "pk": 414, "fields": {"name": "Can add article revision", "content_type": 138, "codename": "add_articlerevision"}}, {"model": "auth.permission", "pk": 415, "fields": {"name": "Can change article revision", "content_type": 138, "codename": "change_articlerevision"}}, {"model": "auth.permission", "pk": 416, "fields": {"name": "Can delete article revision", "content_type": 138, "codename": "delete_articlerevision"}}, {"model": "auth.permission", "pk": 417, "fields": {"name": "Can add article plugin", "content_type": 139, "codename": "add_articleplugin"}}, {"model": "auth.permission", "pk": 418, "fields": {"name": "Can change article plugin", "content_type": 139, "codename": "change_articleplugin"}}, {"model": "auth.permission", "pk": 419, "fields": {"name": "Can delete article plugin", "content_type": 139, "codename": "delete_articleplugin"}}, {"model": "auth.permission", "pk": 420, "fields": {"name": "Can add reusable plugin", "content_type": 140, "codename": "add_reusableplugin"}}, {"model": "auth.permission", "pk": 421, "fields": {"name": "Can change reusable plugin", "content_type": 140, "codename": "change_reusableplugin"}}, {"model": "auth.permission", "pk": 422, "fields": {"name": "Can delete reusable plugin", "content_type": 140, "codename": "delete_reusableplugin"}}, {"model": "auth.permission", "pk": 423, "fields": {"name": "Can add simple plugin", "content_type": 141, "codename": "add_simpleplugin"}}, {"model": "auth.permission", "pk": 424, "fields": {"name": "Can change simple plugin", "content_type": 141, "codename": "change_simpleplugin"}}, {"model": "auth.permission", "pk": 425, "fields": {"name": "Can delete simple plugin", "content_type": 141, "codename": "delete_simpleplugin"}}, {"model": "auth.permission", "pk": 426, "fields": {"name": "Can add revision plugin", "content_type": 142, "codename": "add_revisionplugin"}}, {"model": "auth.permission", "pk": 427, "fields": {"name": "Can change revision plugin", "content_type": 142, "codename": "change_revisionplugin"}}, {"model": "auth.permission", "pk": 428, "fields": {"name": "Can delete revision plugin", "content_type": 142, "codename": "delete_revisionplugin"}}, {"model": "auth.permission", "pk": 429, "fields": {"name": "Can add revision plugin revision", "content_type": 143, "codename": "add_revisionpluginrevision"}}, {"model": "auth.permission", "pk": 430, "fields": {"name": "Can change revision plugin revision", "content_type": 143, "codename": "change_revisionpluginrevision"}}, {"model": "auth.permission", "pk": 431, "fields": {"name": "Can delete revision plugin revision", "content_type": 143, "codename": "delete_revisionpluginrevision"}}, {"model": "auth.permission", "pk": 432, "fields": {"name": "Can add URL path", "content_type": 144, "codename": "add_urlpath"}}, {"model": "auth.permission", "pk": 433, "fields": {"name": "Can change URL path", "content_type": 144, "codename": "change_urlpath"}}, {"model": "auth.permission", "pk": 434, "fields": {"name": "Can delete URL path", "content_type": 144, "codename": "delete_urlpath"}}, {"model": "auth.permission", "pk": 435, "fields": {"name": "Can add type", "content_type": 145, "codename": "add_notificationtype"}}, {"model": "auth.permission", "pk": 436, "fields": {"name": "Can change type", "content_type": 145, "codename": "change_notificationtype"}}, {"model": "auth.permission", "pk": 437, "fields": {"name": "Can delete type", "content_type": 145, "codename": "delete_notificationtype"}}, {"model": "auth.permission", "pk": 438, "fields": {"name": "Can add settings", "content_type": 146, "codename": "add_settings"}}, {"model": "auth.permission", "pk": 439, "fields": {"name": "Can change settings", "content_type": 146, "codename": "change_settings"}}, {"model": "auth.permission", "pk": 440, "fields": {"name": "Can delete settings", "content_type": 146, "codename": "delete_settings"}}, {"model": "auth.permission", "pk": 441, "fields": {"name": "Can add subscription", "content_type": 147, "codename": "add_subscription"}}, {"model": "auth.permission", "pk": 442, "fields": {"name": "Can change subscription", "content_type": 147, "codename": "change_subscription"}}, {"model": "auth.permission", "pk": 443, "fields": {"name": "Can delete subscription", "content_type": 147, "codename": "delete_subscription"}}, {"model": "auth.permission", "pk": 444, "fields": {"name": "Can add notification", "content_type": 148, "codename": "add_notification"}}, {"model": "auth.permission", "pk": 445, "fields": {"name": "Can change notification", "content_type": 148, "codename": "change_notification"}}, {"model": "auth.permission", "pk": 446, "fields": {"name": "Can delete notification", "content_type": 148, "codename": "delete_notification"}}, {"model": "auth.permission", "pk": 447, "fields": {"name": "Can add log entry", "content_type": 149, "codename": "add_logentry"}}, {"model": "auth.permission", "pk": 448, "fields": {"name": "Can change log entry", "content_type": 149, "codename": "change_logentry"}}, {"model": "auth.permission", "pk": 449, "fields": {"name": "Can delete log entry", "content_type": 149, "codename": "delete_logentry"}}, {"model": "auth.permission", "pk": 450, "fields": {"name": "Can add role", "content_type": 150, "codename": "add_role"}}, {"model": "auth.permission", "pk": 451, "fields": {"name": "Can change role", "content_type": 150, "codename": "change_role"}}, {"model": "auth.permission", "pk": 452, "fields": {"name": "Can delete role", "content_type": 150, "codename": "delete_role"}}, {"model": "auth.permission", "pk": 453, "fields": {"name": "Can add permission", "content_type": 151, "codename": "add_permission"}}, {"model": "auth.permission", "pk": 454, "fields": {"name": "Can change permission", "content_type": 151, "codename": "change_permission"}}, {"model": "auth.permission", "pk": 455, "fields": {"name": "Can delete permission", "content_type": 151, "codename": "delete_permission"}}, {"model": "auth.permission", "pk": 456, "fields": {"name": "Can add forums config", "content_type": 152, "codename": "add_forumsconfig"}}, {"model": "auth.permission", "pk": 457, "fields": {"name": "Can change forums config", "content_type": 152, "codename": "change_forumsconfig"}}, {"model": "auth.permission", "pk": 458, "fields": {"name": "Can delete forums config", "content_type": 152, "codename": "delete_forumsconfig"}}, {"model": "auth.permission", "pk": 459, "fields": {"name": "Can add course discussion settings", "content_type": 153, "codename": "add_coursediscussionsettings"}}, {"model": "auth.permission", "pk": 460, "fields": {"name": "Can change course discussion settings", "content_type": 153, "codename": "change_coursediscussionsettings"}}, {"model": "auth.permission", "pk": 461, "fields": {"name": "Can delete course discussion settings", "content_type": 153, "codename": "delete_coursediscussionsettings"}}, {"model": "auth.permission", "pk": 462, "fields": {"name": "Can add note", "content_type": 154, "codename": "add_note"}}, {"model": "auth.permission", "pk": 463, "fields": {"name": "Can change note", "content_type": 154, "codename": "change_note"}}, {"model": "auth.permission", "pk": 464, "fields": {"name": "Can delete note", "content_type": 154, "codename": "delete_note"}}, {"model": "auth.permission", "pk": 465, "fields": {"name": "Can add splash config", "content_type": 155, "codename": "add_splashconfig"}}, {"model": "auth.permission", "pk": 466, "fields": {"name": "Can change splash config", "content_type": 155, "codename": "change_splashconfig"}}, {"model": "auth.permission", "pk": 467, "fields": {"name": "Can delete splash config", "content_type": 155, "codename": "delete_splashconfig"}}, {"model": "auth.permission", "pk": 468, "fields": {"name": "Can add user preference", "content_type": 156, "codename": "add_userpreference"}}, {"model": "auth.permission", "pk": 469, "fields": {"name": "Can change user preference", "content_type": 156, "codename": "change_userpreference"}}, {"model": "auth.permission", "pk": 470, "fields": {"name": "Can delete user preference", "content_type": 156, "codename": "delete_userpreference"}}, {"model": "auth.permission", "pk": 471, "fields": {"name": "Can add user course tag", "content_type": 157, "codename": "add_usercoursetag"}}, {"model": "auth.permission", "pk": 472, "fields": {"name": "Can change user course tag", "content_type": 157, "codename": "change_usercoursetag"}}, {"model": "auth.permission", "pk": 473, "fields": {"name": "Can delete user course tag", "content_type": 157, "codename": "delete_usercoursetag"}}, {"model": "auth.permission", "pk": 474, "fields": {"name": "Can add user org tag", "content_type": 158, "codename": "add_userorgtag"}}, {"model": "auth.permission", "pk": 475, "fields": {"name": "Can change user org tag", "content_type": 158, "codename": "change_userorgtag"}}, {"model": "auth.permission", "pk": 476, "fields": {"name": "Can delete user org tag", "content_type": 158, "codename": "delete_userorgtag"}}, {"model": "auth.permission", "pk": 477, "fields": {"name": "Can add order", "content_type": 159, "codename": "add_order"}}, {"model": "auth.permission", "pk": 478, "fields": {"name": "Can change order", "content_type": 159, "codename": "change_order"}}, {"model": "auth.permission", "pk": 479, "fields": {"name": "Can delete order", "content_type": 159, "codename": "delete_order"}}, {"model": "auth.permission", "pk": 480, "fields": {"name": "Can add order item", "content_type": 160, "codename": "add_orderitem"}}, {"model": "auth.permission", "pk": 481, "fields": {"name": "Can change order item", "content_type": 160, "codename": "change_orderitem"}}, {"model": "auth.permission", "pk": 482, "fields": {"name": "Can delete order item", "content_type": 160, "codename": "delete_orderitem"}}, {"model": "auth.permission", "pk": 483, "fields": {"name": "Can add invoice", "content_type": 161, "codename": "add_invoice"}}, {"model": "auth.permission", "pk": 484, "fields": {"name": "Can change invoice", "content_type": 161, "codename": "change_invoice"}}, {"model": "auth.permission", "pk": 485, "fields": {"name": "Can delete invoice", "content_type": 161, "codename": "delete_invoice"}}, {"model": "auth.permission", "pk": 486, "fields": {"name": "Can add invoice transaction", "content_type": 162, "codename": "add_invoicetransaction"}}, {"model": "auth.permission", "pk": 487, "fields": {"name": "Can change invoice transaction", "content_type": 162, "codename": "change_invoicetransaction"}}, {"model": "auth.permission", "pk": 488, "fields": {"name": "Can delete invoice transaction", "content_type": 162, "codename": "delete_invoicetransaction"}}, {"model": "auth.permission", "pk": 489, "fields": {"name": "Can add invoice item", "content_type": 163, "codename": "add_invoiceitem"}}, {"model": "auth.permission", "pk": 490, "fields": {"name": "Can change invoice item", "content_type": 163, "codename": "change_invoiceitem"}}, {"model": "auth.permission", "pk": 491, "fields": {"name": "Can delete invoice item", "content_type": 163, "codename": "delete_invoiceitem"}}, {"model": "auth.permission", "pk": 492, "fields": {"name": "Can add course registration code invoice item", "content_type": 164, "codename": "add_courseregistrationcodeinvoiceitem"}}, {"model": "auth.permission", "pk": 493, "fields": {"name": "Can change course registration code invoice item", "content_type": 164, "codename": "change_courseregistrationcodeinvoiceitem"}}, {"model": "auth.permission", "pk": 494, "fields": {"name": "Can delete course registration code invoice item", "content_type": 164, "codename": "delete_courseregistrationcodeinvoiceitem"}}, {"model": "auth.permission", "pk": 495, "fields": {"name": "Can add invoice history", "content_type": 165, "codename": "add_invoicehistory"}}, {"model": "auth.permission", "pk": 496, "fields": {"name": "Can change invoice history", "content_type": 165, "codename": "change_invoicehistory"}}, {"model": "auth.permission", "pk": 497, "fields": {"name": "Can delete invoice history", "content_type": 165, "codename": "delete_invoicehistory"}}, {"model": "auth.permission", "pk": 498, "fields": {"name": "Can add course registration code", "content_type": 166, "codename": "add_courseregistrationcode"}}, {"model": "auth.permission", "pk": 499, "fields": {"name": "Can change course registration code", "content_type": 166, "codename": "change_courseregistrationcode"}}, {"model": "auth.permission", "pk": 500, "fields": {"name": "Can delete course registration code", "content_type": 166, "codename": "delete_courseregistrationcode"}}, {"model": "auth.permission", "pk": 501, "fields": {"name": "Can add registration code redemption", "content_type": 167, "codename": "add_registrationcoderedemption"}}, {"model": "auth.permission", "pk": 502, "fields": {"name": "Can change registration code redemption", "content_type": 167, "codename": "change_registrationcoderedemption"}}, {"model": "auth.permission", "pk": 503, "fields": {"name": "Can delete registration code redemption", "content_type": 167, "codename": "delete_registrationcoderedemption"}}, {"model": "auth.permission", "pk": 504, "fields": {"name": "Can add coupon", "content_type": 168, "codename": "add_coupon"}}, {"model": "auth.permission", "pk": 505, "fields": {"name": "Can change coupon", "content_type": 168, "codename": "change_coupon"}}, {"model": "auth.permission", "pk": 506, "fields": {"name": "Can delete coupon", "content_type": 168, "codename": "delete_coupon"}}, {"model": "auth.permission", "pk": 507, "fields": {"name": "Can add coupon redemption", "content_type": 169, "codename": "add_couponredemption"}}, {"model": "auth.permission", "pk": 508, "fields": {"name": "Can change coupon redemption", "content_type": 169, "codename": "change_couponredemption"}}, {"model": "auth.permission", "pk": 509, "fields": {"name": "Can delete coupon redemption", "content_type": 169, "codename": "delete_couponredemption"}}, {"model": "auth.permission", "pk": 510, "fields": {"name": "Can add paid course registration", "content_type": 170, "codename": "add_paidcourseregistration"}}, {"model": "auth.permission", "pk": 511, "fields": {"name": "Can change paid course registration", "content_type": 170, "codename": "change_paidcourseregistration"}}, {"model": "auth.permission", "pk": 512, "fields": {"name": "Can delete paid course registration", "content_type": 170, "codename": "delete_paidcourseregistration"}}, {"model": "auth.permission", "pk": 513, "fields": {"name": "Can add course reg code item", "content_type": 171, "codename": "add_courseregcodeitem"}}, {"model": "auth.permission", "pk": 514, "fields": {"name": "Can change course reg code item", "content_type": 171, "codename": "change_courseregcodeitem"}}, {"model": "auth.permission", "pk": 515, "fields": {"name": "Can delete course reg code item", "content_type": 171, "codename": "delete_courseregcodeitem"}}, {"model": "auth.permission", "pk": 516, "fields": {"name": "Can add course reg code item annotation", "content_type": 172, "codename": "add_courseregcodeitemannotation"}}, {"model": "auth.permission", "pk": 517, "fields": {"name": "Can change course reg code item annotation", "content_type": 172, "codename": "change_courseregcodeitemannotation"}}, {"model": "auth.permission", "pk": 518, "fields": {"name": "Can delete course reg code item annotation", "content_type": 172, "codename": "delete_courseregcodeitemannotation"}}, {"model": "auth.permission", "pk": 519, "fields": {"name": "Can add paid course registration annotation", "content_type": 173, "codename": "add_paidcourseregistrationannotation"}}, {"model": "auth.permission", "pk": 520, "fields": {"name": "Can change paid course registration annotation", "content_type": 173, "codename": "change_paidcourseregistrationannotation"}}, {"model": "auth.permission", "pk": 521, "fields": {"name": "Can delete paid course registration annotation", "content_type": 173, "codename": "delete_paidcourseregistrationannotation"}}, {"model": "auth.permission", "pk": 522, "fields": {"name": "Can add certificate item", "content_type": 174, "codename": "add_certificateitem"}}, {"model": "auth.permission", "pk": 523, "fields": {"name": "Can change certificate item", "content_type": 174, "codename": "change_certificateitem"}}, {"model": "auth.permission", "pk": 524, "fields": {"name": "Can delete certificate item", "content_type": 174, "codename": "delete_certificateitem"}}, {"model": "auth.permission", "pk": 525, "fields": {"name": "Can add donation configuration", "content_type": 175, "codename": "add_donationconfiguration"}}, {"model": "auth.permission", "pk": 526, "fields": {"name": "Can change donation configuration", "content_type": 175, "codename": "change_donationconfiguration"}}, {"model": "auth.permission", "pk": 527, "fields": {"name": "Can delete donation configuration", "content_type": 175, "codename": "delete_donationconfiguration"}}, {"model": "auth.permission", "pk": 528, "fields": {"name": "Can add donation", "content_type": 176, "codename": "add_donation"}}, {"model": "auth.permission", "pk": 529, "fields": {"name": "Can change donation", "content_type": 176, "codename": "change_donation"}}, {"model": "auth.permission", "pk": 530, "fields": {"name": "Can delete donation", "content_type": 176, "codename": "delete_donation"}}, {"model": "auth.permission", "pk": 531, "fields": {"name": "Can add course mode", "content_type": 177, "codename": "add_coursemode"}}, {"model": "auth.permission", "pk": 532, "fields": {"name": "Can change course mode", "content_type": 177, "codename": "change_coursemode"}}, {"model": "auth.permission", "pk": 533, "fields": {"name": "Can delete course mode", "content_type": 177, "codename": "delete_coursemode"}}, {"model": "auth.permission", "pk": 534, "fields": {"name": "Can add course modes archive", "content_type": 178, "codename": "add_coursemodesarchive"}}, {"model": "auth.permission", "pk": 535, "fields": {"name": "Can change course modes archive", "content_type": 178, "codename": "change_coursemodesarchive"}}, {"model": "auth.permission", "pk": 536, "fields": {"name": "Can delete course modes archive", "content_type": 178, "codename": "delete_coursemodesarchive"}}, {"model": "auth.permission", "pk": 537, "fields": {"name": "Can add course mode expiration config", "content_type": 179, "codename": "add_coursemodeexpirationconfig"}}, {"model": "auth.permission", "pk": 538, "fields": {"name": "Can change course mode expiration config", "content_type": 179, "codename": "change_coursemodeexpirationconfig"}}, {"model": "auth.permission", "pk": 539, "fields": {"name": "Can delete course mode expiration config", "content_type": 179, "codename": "delete_coursemodeexpirationconfig"}}, {"model": "auth.permission", "pk": 540, "fields": {"name": "Can add course entitlement", "content_type": 180, "codename": "add_courseentitlement"}}, {"model": "auth.permission", "pk": 541, "fields": {"name": "Can change course entitlement", "content_type": 180, "codename": "change_courseentitlement"}}, {"model": "auth.permission", "pk": 542, "fields": {"name": "Can delete course entitlement", "content_type": 180, "codename": "delete_courseentitlement"}}, {"model": "auth.permission", "pk": 543, "fields": {"name": "Can add software secure photo verification", "content_type": 181, "codename": "add_softwaresecurephotoverification"}}, {"model": "auth.permission", "pk": 544, "fields": {"name": "Can change software secure photo verification", "content_type": 181, "codename": "change_softwaresecurephotoverification"}}, {"model": "auth.permission", "pk": 545, "fields": {"name": "Can delete software secure photo verification", "content_type": 181, "codename": "delete_softwaresecurephotoverification"}}, {"model": "auth.permission", "pk": 546, "fields": {"name": "Can add verification deadline", "content_type": 182, "codename": "add_verificationdeadline"}}, {"model": "auth.permission", "pk": 547, "fields": {"name": "Can change verification deadline", "content_type": 182, "codename": "change_verificationdeadline"}}, {"model": "auth.permission", "pk": 548, "fields": {"name": "Can delete verification deadline", "content_type": 182, "codename": "delete_verificationdeadline"}}, {"model": "auth.permission", "pk": 549, "fields": {"name": "Can add verification checkpoint", "content_type": 183, "codename": "add_verificationcheckpoint"}}, {"model": "auth.permission", "pk": 550, "fields": {"name": "Can change verification checkpoint", "content_type": 183, "codename": "change_verificationcheckpoint"}}, {"model": "auth.permission", "pk": 551, "fields": {"name": "Can delete verification checkpoint", "content_type": 183, "codename": "delete_verificationcheckpoint"}}, {"model": "auth.permission", "pk": 552, "fields": {"name": "Can add Verification Status", "content_type": 184, "codename": "add_verificationstatus"}}, {"model": "auth.permission", "pk": 553, "fields": {"name": "Can change Verification Status", "content_type": 184, "codename": "change_verificationstatus"}}, {"model": "auth.permission", "pk": 554, "fields": {"name": "Can delete Verification Status", "content_type": 184, "codename": "delete_verificationstatus"}}, {"model": "auth.permission", "pk": 555, "fields": {"name": "Can add in course reverification configuration", "content_type": 185, "codename": "add_incoursereverificationconfiguration"}}, {"model": "auth.permission", "pk": 556, "fields": {"name": "Can change in course reverification configuration", "content_type": 185, "codename": "change_incoursereverificationconfiguration"}}, {"model": "auth.permission", "pk": 557, "fields": {"name": "Can delete in course reverification configuration", "content_type": 185, "codename": "delete_incoursereverificationconfiguration"}}, {"model": "auth.permission", "pk": 558, "fields": {"name": "Can add icrv status emails configuration", "content_type": 186, "codename": "add_icrvstatusemailsconfiguration"}}, {"model": "auth.permission", "pk": 559, "fields": {"name": "Can change icrv status emails configuration", "content_type": 186, "codename": "change_icrvstatusemailsconfiguration"}}, {"model": "auth.permission", "pk": 560, "fields": {"name": "Can delete icrv status emails configuration", "content_type": 186, "codename": "delete_icrvstatusemailsconfiguration"}}, {"model": "auth.permission", "pk": 561, "fields": {"name": "Can add skipped reverification", "content_type": 187, "codename": "add_skippedreverification"}}, {"model": "auth.permission", "pk": 562, "fields": {"name": "Can change skipped reverification", "content_type": 187, "codename": "change_skippedreverification"}}, {"model": "auth.permission", "pk": 563, "fields": {"name": "Can delete skipped reverification", "content_type": 187, "codename": "delete_skippedreverification"}}, {"model": "auth.permission", "pk": 564, "fields": {"name": "Can add dark lang config", "content_type": 188, "codename": "add_darklangconfig"}}, {"model": "auth.permission", "pk": 565, "fields": {"name": "Can change dark lang config", "content_type": 188, "codename": "change_darklangconfig"}}, {"model": "auth.permission", "pk": 566, "fields": {"name": "Can delete dark lang config", "content_type": 188, "codename": "delete_darklangconfig"}}, {"model": "auth.permission", "pk": 567, "fields": {"name": "Can add microsite", "content_type": 189, "codename": "add_microsite"}}, {"model": "auth.permission", "pk": 568, "fields": {"name": "Can change microsite", "content_type": 189, "codename": "change_microsite"}}, {"model": "auth.permission", "pk": 569, "fields": {"name": "Can delete microsite", "content_type": 189, "codename": "delete_microsite"}}, {"model": "auth.permission", "pk": 570, "fields": {"name": "Can add microsite history", "content_type": 190, "codename": "add_micrositehistory"}}, {"model": "auth.permission", "pk": 571, "fields": {"name": "Can change microsite history", "content_type": 190, "codename": "change_micrositehistory"}}, {"model": "auth.permission", "pk": 572, "fields": {"name": "Can delete microsite history", "content_type": 190, "codename": "delete_micrositehistory"}}, {"model": "auth.permission", "pk": 573, "fields": {"name": "Can add microsite organization mapping", "content_type": 191, "codename": "add_micrositeorganizationmapping"}}, {"model": "auth.permission", "pk": 574, "fields": {"name": "Can change microsite organization mapping", "content_type": 191, "codename": "change_micrositeorganizationmapping"}}, {"model": "auth.permission", "pk": 575, "fields": {"name": "Can delete microsite organization mapping", "content_type": 191, "codename": "delete_micrositeorganizationmapping"}}, {"model": "auth.permission", "pk": 576, "fields": {"name": "Can add microsite template", "content_type": 192, "codename": "add_micrositetemplate"}}, {"model": "auth.permission", "pk": 577, "fields": {"name": "Can change microsite template", "content_type": 192, "codename": "change_micrositetemplate"}}, {"model": "auth.permission", "pk": 578, "fields": {"name": "Can delete microsite template", "content_type": 192, "codename": "delete_micrositetemplate"}}, {"model": "auth.permission", "pk": 579, "fields": {"name": "Can add whitelisted rss url", "content_type": 193, "codename": "add_whitelistedrssurl"}}, {"model": "auth.permission", "pk": 580, "fields": {"name": "Can change whitelisted rss url", "content_type": 193, "codename": "change_whitelistedrssurl"}}, {"model": "auth.permission", "pk": 581, "fields": {"name": "Can delete whitelisted rss url", "content_type": 193, "codename": "delete_whitelistedrssurl"}}, {"model": "auth.permission", "pk": 582, "fields": {"name": "Can add embargoed course", "content_type": 194, "codename": "add_embargoedcourse"}}, {"model": "auth.permission", "pk": 583, "fields": {"name": "Can change embargoed course", "content_type": 194, "codename": "change_embargoedcourse"}}, {"model": "auth.permission", "pk": 584, "fields": {"name": "Can delete embargoed course", "content_type": 194, "codename": "delete_embargoedcourse"}}, {"model": "auth.permission", "pk": 585, "fields": {"name": "Can add embargoed state", "content_type": 195, "codename": "add_embargoedstate"}}, {"model": "auth.permission", "pk": 586, "fields": {"name": "Can change embargoed state", "content_type": 195, "codename": "change_embargoedstate"}}, {"model": "auth.permission", "pk": 587, "fields": {"name": "Can delete embargoed state", "content_type": 195, "codename": "delete_embargoedstate"}}, {"model": "auth.permission", "pk": 588, "fields": {"name": "Can add restricted course", "content_type": 196, "codename": "add_restrictedcourse"}}, {"model": "auth.permission", "pk": 589, "fields": {"name": "Can change restricted course", "content_type": 196, "codename": "change_restrictedcourse"}}, {"model": "auth.permission", "pk": 590, "fields": {"name": "Can delete restricted course", "content_type": 196, "codename": "delete_restrictedcourse"}}, {"model": "auth.permission", "pk": 591, "fields": {"name": "Can add country", "content_type": 197, "codename": "add_country"}}, {"model": "auth.permission", "pk": 592, "fields": {"name": "Can change country", "content_type": 197, "codename": "change_country"}}, {"model": "auth.permission", "pk": 593, "fields": {"name": "Can delete country", "content_type": 197, "codename": "delete_country"}}, {"model": "auth.permission", "pk": 594, "fields": {"name": "Can add country access rule", "content_type": 198, "codename": "add_countryaccessrule"}}, {"model": "auth.permission", "pk": 595, "fields": {"name": "Can change country access rule", "content_type": 198, "codename": "change_countryaccessrule"}}, {"model": "auth.permission", "pk": 596, "fields": {"name": "Can delete country access rule", "content_type": 198, "codename": "delete_countryaccessrule"}}, {"model": "auth.permission", "pk": 597, "fields": {"name": "Can add course access rule history", "content_type": 199, "codename": "add_courseaccessrulehistory"}}, {"model": "auth.permission", "pk": 598, "fields": {"name": "Can change course access rule history", "content_type": 199, "codename": "change_courseaccessrulehistory"}}, {"model": "auth.permission", "pk": 599, "fields": {"name": "Can delete course access rule history", "content_type": 199, "codename": "delete_courseaccessrulehistory"}}, {"model": "auth.permission", "pk": 600, "fields": {"name": "Can add ip filter", "content_type": 200, "codename": "add_ipfilter"}}, {"model": "auth.permission", "pk": 601, "fields": {"name": "Can change ip filter", "content_type": 200, "codename": "change_ipfilter"}}, {"model": "auth.permission", "pk": 602, "fields": {"name": "Can delete ip filter", "content_type": 200, "codename": "delete_ipfilter"}}, {"model": "auth.permission", "pk": 603, "fields": {"name": "Can add course rerun state", "content_type": 201, "codename": "add_coursererunstate"}}, {"model": "auth.permission", "pk": 604, "fields": {"name": "Can change course rerun state", "content_type": 201, "codename": "change_coursererunstate"}}, {"model": "auth.permission", "pk": 605, "fields": {"name": "Can delete course rerun state", "content_type": 201, "codename": "delete_coursererunstate"}}, {"model": "auth.permission", "pk": 606, "fields": {"name": "Can add mobile api config", "content_type": 202, "codename": "add_mobileapiconfig"}}, {"model": "auth.permission", "pk": 607, "fields": {"name": "Can change mobile api config", "content_type": 202, "codename": "change_mobileapiconfig"}}, {"model": "auth.permission", "pk": 608, "fields": {"name": "Can delete mobile api config", "content_type": 202, "codename": "delete_mobileapiconfig"}}, {"model": "auth.permission", "pk": 609, "fields": {"name": "Can add app version config", "content_type": 203, "codename": "add_appversionconfig"}}, {"model": "auth.permission", "pk": 610, "fields": {"name": "Can change app version config", "content_type": 203, "codename": "change_appversionconfig"}}, {"model": "auth.permission", "pk": 611, "fields": {"name": "Can delete app version config", "content_type": 203, "codename": "delete_appversionconfig"}}, {"model": "auth.permission", "pk": 612, "fields": {"name": "Can add ignore mobile available flag config", "content_type": 204, "codename": "add_ignoremobileavailableflagconfig"}}, {"model": "auth.permission", "pk": 613, "fields": {"name": "Can change ignore mobile available flag config", "content_type": 204, "codename": "change_ignoremobileavailableflagconfig"}}, {"model": "auth.permission", "pk": 614, "fields": {"name": "Can delete ignore mobile available flag config", "content_type": 204, "codename": "delete_ignoremobileavailableflagconfig"}}, {"model": "auth.permission", "pk": 615, "fields": {"name": "Can add user social auth", "content_type": 205, "codename": "add_usersocialauth"}}, {"model": "auth.permission", "pk": 616, "fields": {"name": "Can change user social auth", "content_type": 205, "codename": "change_usersocialauth"}}, {"model": "auth.permission", "pk": 617, "fields": {"name": "Can delete user social auth", "content_type": 205, "codename": "delete_usersocialauth"}}, {"model": "auth.permission", "pk": 618, "fields": {"name": "Can add nonce", "content_type": 206, "codename": "add_nonce"}}, {"model": "auth.permission", "pk": 619, "fields": {"name": "Can change nonce", "content_type": 206, "codename": "change_nonce"}}, {"model": "auth.permission", "pk": 620, "fields": {"name": "Can delete nonce", "content_type": 206, "codename": "delete_nonce"}}, {"model": "auth.permission", "pk": 621, "fields": {"name": "Can add association", "content_type": 207, "codename": "add_association"}}, {"model": "auth.permission", "pk": 622, "fields": {"name": "Can change association", "content_type": 207, "codename": "change_association"}}, {"model": "auth.permission", "pk": 623, "fields": {"name": "Can delete association", "content_type": 207, "codename": "delete_association"}}, {"model": "auth.permission", "pk": 624, "fields": {"name": "Can add code", "content_type": 208, "codename": "add_code"}}, {"model": "auth.permission", "pk": 625, "fields": {"name": "Can change code", "content_type": 208, "codename": "change_code"}}, {"model": "auth.permission", "pk": 626, "fields": {"name": "Can delete code", "content_type": 208, "codename": "delete_code"}}, {"model": "auth.permission", "pk": 627, "fields": {"name": "Can add partial", "content_type": 209, "codename": "add_partial"}}, {"model": "auth.permission", "pk": 628, "fields": {"name": "Can change partial", "content_type": 209, "codename": "change_partial"}}, {"model": "auth.permission", "pk": 629, "fields": {"name": "Can delete partial", "content_type": 209, "codename": "delete_partial"}}, {"model": "auth.permission", "pk": 630, "fields": {"name": "Can add survey form", "content_type": 210, "codename": "add_surveyform"}}, {"model": "auth.permission", "pk": 631, "fields": {"name": "Can change survey form", "content_type": 210, "codename": "change_surveyform"}}, {"model": "auth.permission", "pk": 632, "fields": {"name": "Can delete survey form", "content_type": 210, "codename": "delete_surveyform"}}, {"model": "auth.permission", "pk": 633, "fields": {"name": "Can add survey answer", "content_type": 211, "codename": "add_surveyanswer"}}, {"model": "auth.permission", "pk": 634, "fields": {"name": "Can change survey answer", "content_type": 211, "codename": "change_surveyanswer"}}, {"model": "auth.permission", "pk": 635, "fields": {"name": "Can delete survey answer", "content_type": 211, "codename": "delete_surveyanswer"}}, {"model": "auth.permission", "pk": 636, "fields": {"name": "Can add x block asides config", "content_type": 212, "codename": "add_xblockasidesconfig"}}, {"model": "auth.permission", "pk": 637, "fields": {"name": "Can change x block asides config", "content_type": 212, "codename": "change_xblockasidesconfig"}}, {"model": "auth.permission", "pk": 638, "fields": {"name": "Can delete x block asides config", "content_type": 212, "codename": "delete_xblockasidesconfig"}}, {"model": "auth.permission", "pk": 639, "fields": {"name": "Can add answer", "content_type": 213, "codename": "add_answer"}}, {"model": "auth.permission", "pk": 640, "fields": {"name": "Can change answer", "content_type": 213, "codename": "change_answer"}}, {"model": "auth.permission", "pk": 641, "fields": {"name": "Can delete answer", "content_type": 213, "codename": "delete_answer"}}, {"model": "auth.permission", "pk": 642, "fields": {"name": "Can add share", "content_type": 214, "codename": "add_share"}}, {"model": "auth.permission", "pk": 643, "fields": {"name": "Can change share", "content_type": 214, "codename": "change_share"}}, {"model": "auth.permission", "pk": 644, "fields": {"name": "Can delete share", "content_type": 214, "codename": "delete_share"}}, {"model": "auth.permission", "pk": 645, "fields": {"name": "Can add student item", "content_type": 215, "codename": "add_studentitem"}}, {"model": "auth.permission", "pk": 646, "fields": {"name": "Can change student item", "content_type": 215, "codename": "change_studentitem"}}, {"model": "auth.permission", "pk": 647, "fields": {"name": "Can delete student item", "content_type": 215, "codename": "delete_studentitem"}}, {"model": "auth.permission", "pk": 648, "fields": {"name": "Can add submission", "content_type": 216, "codename": "add_submission"}}, {"model": "auth.permission", "pk": 649, "fields": {"name": "Can change submission", "content_type": 216, "codename": "change_submission"}}, {"model": "auth.permission", "pk": 650, "fields": {"name": "Can delete submission", "content_type": 216, "codename": "delete_submission"}}, {"model": "auth.permission", "pk": 651, "fields": {"name": "Can add score", "content_type": 217, "codename": "add_score"}}, {"model": "auth.permission", "pk": 652, "fields": {"name": "Can change score", "content_type": 217, "codename": "change_score"}}, {"model": "auth.permission", "pk": 653, "fields": {"name": "Can delete score", "content_type": 217, "codename": "delete_score"}}, {"model": "auth.permission", "pk": 654, "fields": {"name": "Can add score summary", "content_type": 218, "codename": "add_scoresummary"}}, {"model": "auth.permission", "pk": 655, "fields": {"name": "Can change score summary", "content_type": 218, "codename": "change_scoresummary"}}, {"model": "auth.permission", "pk": 656, "fields": {"name": "Can delete score summary", "content_type": 218, "codename": "delete_scoresummary"}}, {"model": "auth.permission", "pk": 657, "fields": {"name": "Can add score annotation", "content_type": 219, "codename": "add_scoreannotation"}}, {"model": "auth.permission", "pk": 658, "fields": {"name": "Can change score annotation", "content_type": 219, "codename": "change_scoreannotation"}}, {"model": "auth.permission", "pk": 659, "fields": {"name": "Can delete score annotation", "content_type": 219, "codename": "delete_scoreannotation"}}, {"model": "auth.permission", "pk": 660, "fields": {"name": "Can add rubric", "content_type": 220, "codename": "add_rubric"}}, {"model": "auth.permission", "pk": 661, "fields": {"name": "Can change rubric", "content_type": 220, "codename": "change_rubric"}}, {"model": "auth.permission", "pk": 662, "fields": {"name": "Can delete rubric", "content_type": 220, "codename": "delete_rubric"}}, {"model": "auth.permission", "pk": 663, "fields": {"name": "Can add criterion", "content_type": 221, "codename": "add_criterion"}}, {"model": "auth.permission", "pk": 664, "fields": {"name": "Can change criterion", "content_type": 221, "codename": "change_criterion"}}, {"model": "auth.permission", "pk": 665, "fields": {"name": "Can delete criterion", "content_type": 221, "codename": "delete_criterion"}}, {"model": "auth.permission", "pk": 666, "fields": {"name": "Can add criterion option", "content_type": 222, "codename": "add_criterionoption"}}, {"model": "auth.permission", "pk": 667, "fields": {"name": "Can change criterion option", "content_type": 222, "codename": "change_criterionoption"}}, {"model": "auth.permission", "pk": 668, "fields": {"name": "Can delete criterion option", "content_type": 222, "codename": "delete_criterionoption"}}, {"model": "auth.permission", "pk": 669, "fields": {"name": "Can add assessment", "content_type": 223, "codename": "add_assessment"}}, {"model": "auth.permission", "pk": 670, "fields": {"name": "Can change assessment", "content_type": 223, "codename": "change_assessment"}}, {"model": "auth.permission", "pk": 671, "fields": {"name": "Can delete assessment", "content_type": 223, "codename": "delete_assessment"}}, {"model": "auth.permission", "pk": 672, "fields": {"name": "Can add assessment part", "content_type": 224, "codename": "add_assessmentpart"}}, {"model": "auth.permission", "pk": 673, "fields": {"name": "Can change assessment part", "content_type": 224, "codename": "change_assessmentpart"}}, {"model": "auth.permission", "pk": 674, "fields": {"name": "Can delete assessment part", "content_type": 224, "codename": "delete_assessmentpart"}}, {"model": "auth.permission", "pk": 675, "fields": {"name": "Can add assessment feedback option", "content_type": 225, "codename": "add_assessmentfeedbackoption"}}, {"model": "auth.permission", "pk": 676, "fields": {"name": "Can change assessment feedback option", "content_type": 225, "codename": "change_assessmentfeedbackoption"}}, {"model": "auth.permission", "pk": 677, "fields": {"name": "Can delete assessment feedback option", "content_type": 225, "codename": "delete_assessmentfeedbackoption"}}, {"model": "auth.permission", "pk": 678, "fields": {"name": "Can add assessment feedback", "content_type": 226, "codename": "add_assessmentfeedback"}}, {"model": "auth.permission", "pk": 679, "fields": {"name": "Can change assessment feedback", "content_type": 226, "codename": "change_assessmentfeedback"}}, {"model": "auth.permission", "pk": 680, "fields": {"name": "Can delete assessment feedback", "content_type": 226, "codename": "delete_assessmentfeedback"}}, {"model": "auth.permission", "pk": 681, "fields": {"name": "Can add peer workflow", "content_type": 227, "codename": "add_peerworkflow"}}, {"model": "auth.permission", "pk": 682, "fields": {"name": "Can change peer workflow", "content_type": 227, "codename": "change_peerworkflow"}}, {"model": "auth.permission", "pk": 683, "fields": {"name": "Can delete peer workflow", "content_type": 227, "codename": "delete_peerworkflow"}}, {"model": "auth.permission", "pk": 684, "fields": {"name": "Can add peer workflow item", "content_type": 228, "codename": "add_peerworkflowitem"}}, {"model": "auth.permission", "pk": 685, "fields": {"name": "Can change peer workflow item", "content_type": 228, "codename": "change_peerworkflowitem"}}, {"model": "auth.permission", "pk": 686, "fields": {"name": "Can delete peer workflow item", "content_type": 228, "codename": "delete_peerworkflowitem"}}, {"model": "auth.permission", "pk": 687, "fields": {"name": "Can add training example", "content_type": 229, "codename": "add_trainingexample"}}, {"model": "auth.permission", "pk": 688, "fields": {"name": "Can change training example", "content_type": 229, "codename": "change_trainingexample"}}, {"model": "auth.permission", "pk": 689, "fields": {"name": "Can delete training example", "content_type": 229, "codename": "delete_trainingexample"}}, {"model": "auth.permission", "pk": 690, "fields": {"name": "Can add student training workflow", "content_type": 230, "codename": "add_studenttrainingworkflow"}}, {"model": "auth.permission", "pk": 691, "fields": {"name": "Can change student training workflow", "content_type": 230, "codename": "change_studenttrainingworkflow"}}, {"model": "auth.permission", "pk": 692, "fields": {"name": "Can delete student training workflow", "content_type": 230, "codename": "delete_studenttrainingworkflow"}}, {"model": "auth.permission", "pk": 693, "fields": {"name": "Can add student training workflow item", "content_type": 231, "codename": "add_studenttrainingworkflowitem"}}, {"model": "auth.permission", "pk": 694, "fields": {"name": "Can change student training workflow item", "content_type": 231, "codename": "change_studenttrainingworkflowitem"}}, {"model": "auth.permission", "pk": 695, "fields": {"name": "Can delete student training workflow item", "content_type": 231, "codename": "delete_studenttrainingworkflowitem"}}, {"model": "auth.permission", "pk": 696, "fields": {"name": "Can add staff workflow", "content_type": 232, "codename": "add_staffworkflow"}}, {"model": "auth.permission", "pk": 697, "fields": {"name": "Can change staff workflow", "content_type": 232, "codename": "change_staffworkflow"}}, {"model": "auth.permission", "pk": 698, "fields": {"name": "Can delete staff workflow", "content_type": 232, "codename": "delete_staffworkflow"}}, {"model": "auth.permission", "pk": 699, "fields": {"name": "Can add assessment workflow", "content_type": 233, "codename": "add_assessmentworkflow"}}, {"model": "auth.permission", "pk": 700, "fields": {"name": "Can change assessment workflow", "content_type": 233, "codename": "change_assessmentworkflow"}}, {"model": "auth.permission", "pk": 701, "fields": {"name": "Can delete assessment workflow", "content_type": 233, "codename": "delete_assessmentworkflow"}}, {"model": "auth.permission", "pk": 702, "fields": {"name": "Can add assessment workflow step", "content_type": 234, "codename": "add_assessmentworkflowstep"}}, {"model": "auth.permission", "pk": 703, "fields": {"name": "Can change assessment workflow step", "content_type": 234, "codename": "change_assessmentworkflowstep"}}, {"model": "auth.permission", "pk": 704, "fields": {"name": "Can delete assessment workflow step", "content_type": 234, "codename": "delete_assessmentworkflowstep"}}, {"model": "auth.permission", "pk": 705, "fields": {"name": "Can add assessment workflow cancellation", "content_type": 235, "codename": "add_assessmentworkflowcancellation"}}, {"model": "auth.permission", "pk": 706, "fields": {"name": "Can change assessment workflow cancellation", "content_type": 235, "codename": "change_assessmentworkflowcancellation"}}, {"model": "auth.permission", "pk": 707, "fields": {"name": "Can delete assessment workflow cancellation", "content_type": 235, "codename": "delete_assessmentworkflowcancellation"}}, {"model": "auth.permission", "pk": 708, "fields": {"name": "Can add profile", "content_type": 236, "codename": "add_profile"}}, {"model": "auth.permission", "pk": 709, "fields": {"name": "Can change profile", "content_type": 236, "codename": "change_profile"}}, {"model": "auth.permission", "pk": 710, "fields": {"name": "Can delete profile", "content_type": 236, "codename": "delete_profile"}}, {"model": "auth.permission", "pk": 711, "fields": {"name": "Can add video", "content_type": 237, "codename": "add_video"}}, {"model": "auth.permission", "pk": 712, "fields": {"name": "Can change video", "content_type": 237, "codename": "change_video"}}, {"model": "auth.permission", "pk": 713, "fields": {"name": "Can delete video", "content_type": 237, "codename": "delete_video"}}, {"model": "auth.permission", "pk": 714, "fields": {"name": "Can add course video", "content_type": 238, "codename": "add_coursevideo"}}, {"model": "auth.permission", "pk": 715, "fields": {"name": "Can change course video", "content_type": 238, "codename": "change_coursevideo"}}, {"model": "auth.permission", "pk": 716, "fields": {"name": "Can delete course video", "content_type": 238, "codename": "delete_coursevideo"}}, {"model": "auth.permission", "pk": 717, "fields": {"name": "Can add encoded video", "content_type": 239, "codename": "add_encodedvideo"}}, {"model": "auth.permission", "pk": 718, "fields": {"name": "Can change encoded video", "content_type": 239, "codename": "change_encodedvideo"}}, {"model": "auth.permission", "pk": 719, "fields": {"name": "Can delete encoded video", "content_type": 239, "codename": "delete_encodedvideo"}}, {"model": "auth.permission", "pk": 720, "fields": {"name": "Can add video image", "content_type": 240, "codename": "add_videoimage"}}, {"model": "auth.permission", "pk": 721, "fields": {"name": "Can change video image", "content_type": 240, "codename": "change_videoimage"}}, {"model": "auth.permission", "pk": 722, "fields": {"name": "Can delete video image", "content_type": 240, "codename": "delete_videoimage"}}, {"model": "auth.permission", "pk": 723, "fields": {"name": "Can add video transcript", "content_type": 241, "codename": "add_videotranscript"}}, {"model": "auth.permission", "pk": 724, "fields": {"name": "Can change video transcript", "content_type": 241, "codename": "change_videotranscript"}}, {"model": "auth.permission", "pk": 725, "fields": {"name": "Can delete video transcript", "content_type": 241, "codename": "delete_videotranscript"}}, {"model": "auth.permission", "pk": 726, "fields": {"name": "Can add transcript preference", "content_type": 242, "codename": "add_transcriptpreference"}}, {"model": "auth.permission", "pk": 727, "fields": {"name": "Can change transcript preference", "content_type": 242, "codename": "change_transcriptpreference"}}, {"model": "auth.permission", "pk": 728, "fields": {"name": "Can delete transcript preference", "content_type": 242, "codename": "delete_transcriptpreference"}}, {"model": "auth.permission", "pk": 729, "fields": {"name": "Can add third party transcript credentials state", "content_type": 243, "codename": "add_thirdpartytranscriptcredentialsstate"}}, {"model": "auth.permission", "pk": 730, "fields": {"name": "Can change third party transcript credentials state", "content_type": 243, "codename": "change_thirdpartytranscriptcredentialsstate"}}, {"model": "auth.permission", "pk": 731, "fields": {"name": "Can delete third party transcript credentials state", "content_type": 243, "codename": "delete_thirdpartytranscriptcredentialsstate"}}, {"model": "auth.permission", "pk": 732, "fields": {"name": "Can add course overview", "content_type": 244, "codename": "add_courseoverview"}}, {"model": "auth.permission", "pk": 733, "fields": {"name": "Can change course overview", "content_type": 244, "codename": "change_courseoverview"}}, {"model": "auth.permission", "pk": 734, "fields": {"name": "Can delete course overview", "content_type": 244, "codename": "delete_courseoverview"}}, {"model": "auth.permission", "pk": 735, "fields": {"name": "Can add course overview tab", "content_type": 245, "codename": "add_courseoverviewtab"}}, {"model": "auth.permission", "pk": 736, "fields": {"name": "Can change course overview tab", "content_type": 245, "codename": "change_courseoverviewtab"}}, {"model": "auth.permission", "pk": 737, "fields": {"name": "Can delete course overview tab", "content_type": 245, "codename": "delete_courseoverviewtab"}}, {"model": "auth.permission", "pk": 738, "fields": {"name": "Can add course overview image set", "content_type": 246, "codename": "add_courseoverviewimageset"}}, {"model": "auth.permission", "pk": 739, "fields": {"name": "Can change course overview image set", "content_type": 246, "codename": "change_courseoverviewimageset"}}, {"model": "auth.permission", "pk": 740, "fields": {"name": "Can delete course overview image set", "content_type": 246, "codename": "delete_courseoverviewimageset"}}, {"model": "auth.permission", "pk": 741, "fields": {"name": "Can add course overview image config", "content_type": 247, "codename": "add_courseoverviewimageconfig"}}, {"model": "auth.permission", "pk": 742, "fields": {"name": "Can change course overview image config", "content_type": 247, "codename": "change_courseoverviewimageconfig"}}, {"model": "auth.permission", "pk": 743, "fields": {"name": "Can delete course overview image config", "content_type": 247, "codename": "delete_courseoverviewimageconfig"}}, {"model": "auth.permission", "pk": 744, "fields": {"name": "Can add course structure", "content_type": 248, "codename": "add_coursestructure"}}, {"model": "auth.permission", "pk": 745, "fields": {"name": "Can change course structure", "content_type": 248, "codename": "change_coursestructure"}}, {"model": "auth.permission", "pk": 746, "fields": {"name": "Can delete course structure", "content_type": 248, "codename": "delete_coursestructure"}}, {"model": "auth.permission", "pk": 747, "fields": {"name": "Can add block structure configuration", "content_type": 249, "codename": "add_blockstructureconfiguration"}}, {"model": "auth.permission", "pk": 748, "fields": {"name": "Can change block structure configuration", "content_type": 249, "codename": "change_blockstructureconfiguration"}}, {"model": "auth.permission", "pk": 749, "fields": {"name": "Can delete block structure configuration", "content_type": 249, "codename": "delete_blockstructureconfiguration"}}, {"model": "auth.permission", "pk": 750, "fields": {"name": "Can add block structure model", "content_type": 250, "codename": "add_blockstructuremodel"}}, {"model": "auth.permission", "pk": 751, "fields": {"name": "Can change block structure model", "content_type": 250, "codename": "change_blockstructuremodel"}}, {"model": "auth.permission", "pk": 752, "fields": {"name": "Can delete block structure model", "content_type": 250, "codename": "delete_blockstructuremodel"}}, {"model": "auth.permission", "pk": 753, "fields": {"name": "Can add x domain proxy configuration", "content_type": 251, "codename": "add_xdomainproxyconfiguration"}}, {"model": "auth.permission", "pk": 754, "fields": {"name": "Can change x domain proxy configuration", "content_type": 251, "codename": "change_xdomainproxyconfiguration"}}, {"model": "auth.permission", "pk": 755, "fields": {"name": "Can delete x domain proxy configuration", "content_type": 251, "codename": "delete_xdomainproxyconfiguration"}}, {"model": "auth.permission", "pk": 756, "fields": {"name": "Can add commerce configuration", "content_type": 252, "codename": "add_commerceconfiguration"}}, {"model": "auth.permission", "pk": 757, "fields": {"name": "Can change commerce configuration", "content_type": 252, "codename": "change_commerceconfiguration"}}, {"model": "auth.permission", "pk": 758, "fields": {"name": "Can delete commerce configuration", "content_type": 252, "codename": "delete_commerceconfiguration"}}, {"model": "auth.permission", "pk": 759, "fields": {"name": "Can add credit provider", "content_type": 253, "codename": "add_creditprovider"}}, {"model": "auth.permission", "pk": 760, "fields": {"name": "Can change credit provider", "content_type": 253, "codename": "change_creditprovider"}}, {"model": "auth.permission", "pk": 761, "fields": {"name": "Can delete credit provider", "content_type": 253, "codename": "delete_creditprovider"}}, {"model": "auth.permission", "pk": 762, "fields": {"name": "Can add credit course", "content_type": 254, "codename": "add_creditcourse"}}, {"model": "auth.permission", "pk": 763, "fields": {"name": "Can change credit course", "content_type": 254, "codename": "change_creditcourse"}}, {"model": "auth.permission", "pk": 764, "fields": {"name": "Can delete credit course", "content_type": 254, "codename": "delete_creditcourse"}}, {"model": "auth.permission", "pk": 765, "fields": {"name": "Can add credit requirement", "content_type": 255, "codename": "add_creditrequirement"}}, {"model": "auth.permission", "pk": 766, "fields": {"name": "Can change credit requirement", "content_type": 255, "codename": "change_creditrequirement"}}, {"model": "auth.permission", "pk": 767, "fields": {"name": "Can delete credit requirement", "content_type": 255, "codename": "delete_creditrequirement"}}, {"model": "auth.permission", "pk": 768, "fields": {"name": "Can add credit requirement status", "content_type": 256, "codename": "add_creditrequirementstatus"}}, {"model": "auth.permission", "pk": 769, "fields": {"name": "Can change credit requirement status", "content_type": 256, "codename": "change_creditrequirementstatus"}}, {"model": "auth.permission", "pk": 770, "fields": {"name": "Can delete credit requirement status", "content_type": 256, "codename": "delete_creditrequirementstatus"}}, {"model": "auth.permission", "pk": 771, "fields": {"name": "Can add credit eligibility", "content_type": 257, "codename": "add_crediteligibility"}}, {"model": "auth.permission", "pk": 772, "fields": {"name": "Can change credit eligibility", "content_type": 257, "codename": "change_crediteligibility"}}, {"model": "auth.permission", "pk": 773, "fields": {"name": "Can delete credit eligibility", "content_type": 257, "codename": "delete_crediteligibility"}}, {"model": "auth.permission", "pk": 774, "fields": {"name": "Can add credit request", "content_type": 258, "codename": "add_creditrequest"}}, {"model": "auth.permission", "pk": 775, "fields": {"name": "Can change credit request", "content_type": 258, "codename": "change_creditrequest"}}, {"model": "auth.permission", "pk": 776, "fields": {"name": "Can delete credit request", "content_type": 258, "codename": "delete_creditrequest"}}, {"model": "auth.permission", "pk": 777, "fields": {"name": "Can add credit config", "content_type": 259, "codename": "add_creditconfig"}}, {"model": "auth.permission", "pk": 778, "fields": {"name": "Can change credit config", "content_type": 259, "codename": "change_creditconfig"}}, {"model": "auth.permission", "pk": 779, "fields": {"name": "Can delete credit config", "content_type": 259, "codename": "delete_creditconfig"}}, {"model": "auth.permission", "pk": 780, "fields": {"name": "Can add course team", "content_type": 260, "codename": "add_courseteam"}}, {"model": "auth.permission", "pk": 781, "fields": {"name": "Can change course team", "content_type": 260, "codename": "change_courseteam"}}, {"model": "auth.permission", "pk": 782, "fields": {"name": "Can delete course team", "content_type": 260, "codename": "delete_courseteam"}}, {"model": "auth.permission", "pk": 783, "fields": {"name": "Can add course team membership", "content_type": 261, "codename": "add_courseteammembership"}}, {"model": "auth.permission", "pk": 784, "fields": {"name": "Can change course team membership", "content_type": 261, "codename": "change_courseteammembership"}}, {"model": "auth.permission", "pk": 785, "fields": {"name": "Can delete course team membership", "content_type": 261, "codename": "delete_courseteammembership"}}, {"model": "auth.permission", "pk": 786, "fields": {"name": "Can add x block configuration", "content_type": 262, "codename": "add_xblockconfiguration"}}, {"model": "auth.permission", "pk": 787, "fields": {"name": "Can change x block configuration", "content_type": 262, "codename": "change_xblockconfiguration"}}, {"model": "auth.permission", "pk": 788, "fields": {"name": "Can delete x block configuration", "content_type": 262, "codename": "delete_xblockconfiguration"}}, {"model": "auth.permission", "pk": 789, "fields": {"name": "Can add x block studio configuration flag", "content_type": 263, "codename": "add_xblockstudioconfigurationflag"}}, {"model": "auth.permission", "pk": 790, "fields": {"name": "Can change x block studio configuration flag", "content_type": 263, "codename": "change_xblockstudioconfigurationflag"}}, {"model": "auth.permission", "pk": 791, "fields": {"name": "Can delete x block studio configuration flag", "content_type": 263, "codename": "delete_xblockstudioconfigurationflag"}}, {"model": "auth.permission", "pk": 792, "fields": {"name": "Can add x block studio configuration", "content_type": 264, "codename": "add_xblockstudioconfiguration"}}, {"model": "auth.permission", "pk": 793, "fields": {"name": "Can change x block studio configuration", "content_type": 264, "codename": "change_xblockstudioconfiguration"}}, {"model": "auth.permission", "pk": 794, "fields": {"name": "Can delete x block studio configuration", "content_type": 264, "codename": "delete_xblockstudioconfiguration"}}, {"model": "auth.permission", "pk": 795, "fields": {"name": "Can add programs api config", "content_type": 265, "codename": "add_programsapiconfig"}}, {"model": "auth.permission", "pk": 796, "fields": {"name": "Can change programs api config", "content_type": 265, "codename": "change_programsapiconfig"}}, {"model": "auth.permission", "pk": 797, "fields": {"name": "Can delete programs api config", "content_type": 265, "codename": "delete_programsapiconfig"}}, {"model": "auth.permission", "pk": 798, "fields": {"name": "Can add catalog integration", "content_type": 266, "codename": "add_catalogintegration"}}, {"model": "auth.permission", "pk": 799, "fields": {"name": "Can change catalog integration", "content_type": 266, "codename": "change_catalogintegration"}}, {"model": "auth.permission", "pk": 800, "fields": {"name": "Can delete catalog integration", "content_type": 266, "codename": "delete_catalogintegration"}}, {"model": "auth.permission", "pk": 801, "fields": {"name": "Can add self paced configuration", "content_type": 267, "codename": "add_selfpacedconfiguration"}}, {"model": "auth.permission", "pk": 802, "fields": {"name": "Can change self paced configuration", "content_type": 267, "codename": "change_selfpacedconfiguration"}}, {"model": "auth.permission", "pk": 803, "fields": {"name": "Can delete self paced configuration", "content_type": 267, "codename": "delete_selfpacedconfiguration"}}, {"model": "auth.permission", "pk": 804, "fields": {"name": "Can add kv store", "content_type": 268, "codename": "add_kvstore"}}, {"model": "auth.permission", "pk": 805, "fields": {"name": "Can change kv store", "content_type": 268, "codename": "change_kvstore"}}, {"model": "auth.permission", "pk": 806, "fields": {"name": "Can delete kv store", "content_type": 268, "codename": "delete_kvstore"}}, {"model": "auth.permission", "pk": 807, "fields": {"name": "Can add credentials api config", "content_type": 269, "codename": "add_credentialsapiconfig"}}, {"model": "auth.permission", "pk": 808, "fields": {"name": "Can change credentials api config", "content_type": 269, "codename": "change_credentialsapiconfig"}}, {"model": "auth.permission", "pk": 809, "fields": {"name": "Can delete credentials api config", "content_type": 269, "codename": "delete_credentialsapiconfig"}}, {"model": "auth.permission", "pk": 810, "fields": {"name": "Can add milestone", "content_type": 270, "codename": "add_milestone"}}, {"model": "auth.permission", "pk": 811, "fields": {"name": "Can change milestone", "content_type": 270, "codename": "change_milestone"}}, {"model": "auth.permission", "pk": 812, "fields": {"name": "Can delete milestone", "content_type": 270, "codename": "delete_milestone"}}, {"model": "auth.permission", "pk": 813, "fields": {"name": "Can add milestone relationship type", "content_type": 271, "codename": "add_milestonerelationshiptype"}}, {"model": "auth.permission", "pk": 814, "fields": {"name": "Can change milestone relationship type", "content_type": 271, "codename": "change_milestonerelationshiptype"}}, {"model": "auth.permission", "pk": 815, "fields": {"name": "Can delete milestone relationship type", "content_type": 271, "codename": "delete_milestonerelationshiptype"}}, {"model": "auth.permission", "pk": 816, "fields": {"name": "Can add course milestone", "content_type": 272, "codename": "add_coursemilestone"}}, {"model": "auth.permission", "pk": 817, "fields": {"name": "Can change course milestone", "content_type": 272, "codename": "change_coursemilestone"}}, {"model": "auth.permission", "pk": 818, "fields": {"name": "Can delete course milestone", "content_type": 272, "codename": "delete_coursemilestone"}}, {"model": "auth.permission", "pk": 819, "fields": {"name": "Can add course content milestone", "content_type": 273, "codename": "add_coursecontentmilestone"}}, {"model": "auth.permission", "pk": 820, "fields": {"name": "Can change course content milestone", "content_type": 273, "codename": "change_coursecontentmilestone"}}, {"model": "auth.permission", "pk": 821, "fields": {"name": "Can delete course content milestone", "content_type": 273, "codename": "delete_coursecontentmilestone"}}, {"model": "auth.permission", "pk": 822, "fields": {"name": "Can add user milestone", "content_type": 274, "codename": "add_usermilestone"}}, {"model": "auth.permission", "pk": 823, "fields": {"name": "Can change user milestone", "content_type": 274, "codename": "change_usermilestone"}}, {"model": "auth.permission", "pk": 824, "fields": {"name": "Can delete user milestone", "content_type": 274, "codename": "delete_usermilestone"}}, {"model": "auth.permission", "pk": 825, "fields": {"name": "Can add api access request", "content_type": 1, "codename": "add_apiaccessrequest"}}, {"model": "auth.permission", "pk": 826, "fields": {"name": "Can change api access request", "content_type": 1, "codename": "change_apiaccessrequest"}}, {"model": "auth.permission", "pk": 827, "fields": {"name": "Can delete api access request", "content_type": 1, "codename": "delete_apiaccessrequest"}}, {"model": "auth.permission", "pk": 828, "fields": {"name": "Can add api access config", "content_type": 275, "codename": "add_apiaccessconfig"}}, {"model": "auth.permission", "pk": 829, "fields": {"name": "Can change api access config", "content_type": 275, "codename": "change_apiaccessconfig"}}, {"model": "auth.permission", "pk": 830, "fields": {"name": "Can delete api access config", "content_type": 275, "codename": "delete_apiaccessconfig"}}, {"model": "auth.permission", "pk": 831, "fields": {"name": "Can add catalog", "content_type": 276, "codename": "add_catalog"}}, {"model": "auth.permission", "pk": 832, "fields": {"name": "Can change catalog", "content_type": 276, "codename": "change_catalog"}}, {"model": "auth.permission", "pk": 833, "fields": {"name": "Can delete catalog", "content_type": 276, "codename": "delete_catalog"}}, {"model": "auth.permission", "pk": 834, "fields": {"name": "Can add verified track cohorted course", "content_type": 277, "codename": "add_verifiedtrackcohortedcourse"}}, {"model": "auth.permission", "pk": 835, "fields": {"name": "Can change verified track cohorted course", "content_type": 277, "codename": "change_verifiedtrackcohortedcourse"}}, {"model": "auth.permission", "pk": 836, "fields": {"name": "Can delete verified track cohorted course", "content_type": 277, "codename": "delete_verifiedtrackcohortedcourse"}}, {"model": "auth.permission", "pk": 837, "fields": {"name": "Can add migrate verified track cohorts setting", "content_type": 278, "codename": "add_migrateverifiedtrackcohortssetting"}}, {"model": "auth.permission", "pk": 838, "fields": {"name": "Can change migrate verified track cohorts setting", "content_type": 278, "codename": "change_migrateverifiedtrackcohortssetting"}}, {"model": "auth.permission", "pk": 839, "fields": {"name": "Can delete migrate verified track cohorts setting", "content_type": 278, "codename": "delete_migrateverifiedtrackcohortssetting"}}, {"model": "auth.permission", "pk": 840, "fields": {"name": "Can add badge class", "content_type": 279, "codename": "add_badgeclass"}}, {"model": "auth.permission", "pk": 841, "fields": {"name": "Can change badge class", "content_type": 279, "codename": "change_badgeclass"}}, {"model": "auth.permission", "pk": 842, "fields": {"name": "Can delete badge class", "content_type": 279, "codename": "delete_badgeclass"}}, {"model": "auth.permission", "pk": 843, "fields": {"name": "Can add badge assertion", "content_type": 280, "codename": "add_badgeassertion"}}, {"model": "auth.permission", "pk": 844, "fields": {"name": "Can change badge assertion", "content_type": 280, "codename": "change_badgeassertion"}}, {"model": "auth.permission", "pk": 845, "fields": {"name": "Can delete badge assertion", "content_type": 280, "codename": "delete_badgeassertion"}}, {"model": "auth.permission", "pk": 846, "fields": {"name": "Can add course complete image configuration", "content_type": 281, "codename": "add_coursecompleteimageconfiguration"}}, {"model": "auth.permission", "pk": 847, "fields": {"name": "Can change course complete image configuration", "content_type": 281, "codename": "change_coursecompleteimageconfiguration"}}, {"model": "auth.permission", "pk": 848, "fields": {"name": "Can delete course complete image configuration", "content_type": 281, "codename": "delete_coursecompleteimageconfiguration"}}, {"model": "auth.permission", "pk": 849, "fields": {"name": "Can add course event badges configuration", "content_type": 282, "codename": "add_courseeventbadgesconfiguration"}}, {"model": "auth.permission", "pk": 850, "fields": {"name": "Can change course event badges configuration", "content_type": 282, "codename": "change_courseeventbadgesconfiguration"}}, {"model": "auth.permission", "pk": 851, "fields": {"name": "Can delete course event badges configuration", "content_type": 282, "codename": "delete_courseeventbadgesconfiguration"}}, {"model": "auth.permission", "pk": 852, "fields": {"name": "Can add email marketing configuration", "content_type": 283, "codename": "add_emailmarketingconfiguration"}}, {"model": "auth.permission", "pk": 853, "fields": {"name": "Can change email marketing configuration", "content_type": 283, "codename": "change_emailmarketingconfiguration"}}, {"model": "auth.permission", "pk": 854, "fields": {"name": "Can delete email marketing configuration", "content_type": 283, "codename": "delete_emailmarketingconfiguration"}}, {"model": "auth.permission", "pk": 855, "fields": {"name": "Can add failed task", "content_type": 284, "codename": "add_failedtask"}}, {"model": "auth.permission", "pk": 856, "fields": {"name": "Can change failed task", "content_type": 284, "codename": "change_failedtask"}}, {"model": "auth.permission", "pk": 857, "fields": {"name": "Can delete failed task", "content_type": 284, "codename": "delete_failedtask"}}, {"model": "auth.permission", "pk": 858, "fields": {"name": "Can add chord data", "content_type": 285, "codename": "add_chorddata"}}, {"model": "auth.permission", "pk": 859, "fields": {"name": "Can change chord data", "content_type": 285, "codename": "change_chorddata"}}, {"model": "auth.permission", "pk": 860, "fields": {"name": "Can delete chord data", "content_type": 285, "codename": "delete_chorddata"}}, {"model": "auth.permission", "pk": 861, "fields": {"name": "Can add crawlers config", "content_type": 286, "codename": "add_crawlersconfig"}}, {"model": "auth.permission", "pk": 862, "fields": {"name": "Can change crawlers config", "content_type": 286, "codename": "change_crawlersconfig"}}, {"model": "auth.permission", "pk": 863, "fields": {"name": "Can delete crawlers config", "content_type": 286, "codename": "delete_crawlersconfig"}}, {"model": "auth.permission", "pk": 864, "fields": {"name": "Can add Waffle flag course override", "content_type": 287, "codename": "add_waffleflagcourseoverridemodel"}}, {"model": "auth.permission", "pk": 865, "fields": {"name": "Can change Waffle flag course override", "content_type": 287, "codename": "change_waffleflagcourseoverridemodel"}}, {"model": "auth.permission", "pk": 866, "fields": {"name": "Can delete Waffle flag course override", "content_type": 287, "codename": "delete_waffleflagcourseoverridemodel"}}, {"model": "auth.permission", "pk": 867, "fields": {"name": "Can add Schedule", "content_type": 288, "codename": "add_schedule"}}, {"model": "auth.permission", "pk": 868, "fields": {"name": "Can change Schedule", "content_type": 288, "codename": "change_schedule"}}, {"model": "auth.permission", "pk": 869, "fields": {"name": "Can delete Schedule", "content_type": 288, "codename": "delete_schedule"}}, {"model": "auth.permission", "pk": 870, "fields": {"name": "Can add schedule config", "content_type": 289, "codename": "add_scheduleconfig"}}, {"model": "auth.permission", "pk": 871, "fields": {"name": "Can change schedule config", "content_type": 289, "codename": "change_scheduleconfig"}}, {"model": "auth.permission", "pk": 872, "fields": {"name": "Can delete schedule config", "content_type": 289, "codename": "delete_scheduleconfig"}}, {"model": "auth.permission", "pk": 873, "fields": {"name": "Can add schedule experience", "content_type": 290, "codename": "add_scheduleexperience"}}, {"model": "auth.permission", "pk": 874, "fields": {"name": "Can change schedule experience", "content_type": 290, "codename": "change_scheduleexperience"}}, {"model": "auth.permission", "pk": 875, "fields": {"name": "Can delete schedule experience", "content_type": 290, "codename": "delete_scheduleexperience"}}, {"model": "auth.permission", "pk": 876, "fields": {"name": "Can add course goal", "content_type": 291, "codename": "add_coursegoal"}}, {"model": "auth.permission", "pk": 877, "fields": {"name": "Can change course goal", "content_type": 291, "codename": "change_coursegoal"}}, {"model": "auth.permission", "pk": 878, "fields": {"name": "Can delete course goal", "content_type": 291, "codename": "delete_coursegoal"}}, {"model": "auth.permission", "pk": 879, "fields": {"name": "Can add block completion", "content_type": 292, "codename": "add_blockcompletion"}}, {"model": "auth.permission", "pk": 880, "fields": {"name": "Can change block completion", "content_type": 292, "codename": "change_blockcompletion"}}, {"model": "auth.permission", "pk": 881, "fields": {"name": "Can delete block completion", "content_type": 292, "codename": "delete_blockcompletion"}}, {"model": "auth.permission", "pk": 882, "fields": {"name": "Can add Experiment Data", "content_type": 293, "codename": "add_experimentdata"}}, {"model": "auth.permission", "pk": 883, "fields": {"name": "Can change Experiment Data", "content_type": 293, "codename": "change_experimentdata"}}, {"model": "auth.permission", "pk": 884, "fields": {"name": "Can delete Experiment Data", "content_type": 293, "codename": "delete_experimentdata"}}, {"model": "auth.permission", "pk": 885, "fields": {"name": "Can add Experiment Key-Value Pair", "content_type": 294, "codename": "add_experimentkeyvalue"}}, {"model": "auth.permission", "pk": 886, "fields": {"name": "Can change Experiment Key-Value Pair", "content_type": 294, "codename": "change_experimentkeyvalue"}}, {"model": "auth.permission", "pk": 887, "fields": {"name": "Can delete Experiment Key-Value Pair", "content_type": 294, "codename": "delete_experimentkeyvalue"}}, {"model": "auth.permission", "pk": 888, "fields": {"name": "Can add proctored exam", "content_type": 295, "codename": "add_proctoredexam"}}, {"model": "auth.permission", "pk": 889, "fields": {"name": "Can change proctored exam", "content_type": 295, "codename": "change_proctoredexam"}}, {"model": "auth.permission", "pk": 890, "fields": {"name": "Can delete proctored exam", "content_type": 295, "codename": "delete_proctoredexam"}}, {"model": "auth.permission", "pk": 891, "fields": {"name": "Can add Proctored exam review policy", "content_type": 296, "codename": "add_proctoredexamreviewpolicy"}}, {"model": "auth.permission", "pk": 892, "fields": {"name": "Can change Proctored exam review policy", "content_type": 296, "codename": "change_proctoredexamreviewpolicy"}}, {"model": "auth.permission", "pk": 893, "fields": {"name": "Can delete Proctored exam review policy", "content_type": 296, "codename": "delete_proctoredexamreviewpolicy"}}, {"model": "auth.permission", "pk": 894, "fields": {"name": "Can add proctored exam review policy history", "content_type": 297, "codename": "add_proctoredexamreviewpolicyhistory"}}, {"model": "auth.permission", "pk": 895, "fields": {"name": "Can change proctored exam review policy history", "content_type": 297, "codename": "change_proctoredexamreviewpolicyhistory"}}, {"model": "auth.permission", "pk": 896, "fields": {"name": "Can delete proctored exam review policy history", "content_type": 297, "codename": "delete_proctoredexamreviewpolicyhistory"}}, {"model": "auth.permission", "pk": 897, "fields": {"name": "Can add proctored exam attempt", "content_type": 298, "codename": "add_proctoredexamstudentattempt"}}, {"model": "auth.permission", "pk": 898, "fields": {"name": "Can change proctored exam attempt", "content_type": 298, "codename": "change_proctoredexamstudentattempt"}}, {"model": "auth.permission", "pk": 899, "fields": {"name": "Can delete proctored exam attempt", "content_type": 298, "codename": "delete_proctoredexamstudentattempt"}}, {"model": "auth.permission", "pk": 900, "fields": {"name": "Can add proctored exam attempt history", "content_type": 299, "codename": "add_proctoredexamstudentattempthistory"}}, {"model": "auth.permission", "pk": 901, "fields": {"name": "Can change proctored exam attempt history", "content_type": 299, "codename": "change_proctoredexamstudentattempthistory"}}, {"model": "auth.permission", "pk": 902, "fields": {"name": "Can delete proctored exam attempt history", "content_type": 299, "codename": "delete_proctoredexamstudentattempthistory"}}, {"model": "auth.permission", "pk": 903, "fields": {"name": "Can add proctored allowance", "content_type": 300, "codename": "add_proctoredexamstudentallowance"}}, {"model": "auth.permission", "pk": 904, "fields": {"name": "Can change proctored allowance", "content_type": 300, "codename": "change_proctoredexamstudentallowance"}}, {"model": "auth.permission", "pk": 905, "fields": {"name": "Can delete proctored allowance", "content_type": 300, "codename": "delete_proctoredexamstudentallowance"}}, {"model": "auth.permission", "pk": 906, "fields": {"name": "Can add proctored allowance history", "content_type": 301, "codename": "add_proctoredexamstudentallowancehistory"}}, {"model": "auth.permission", "pk": 907, "fields": {"name": "Can change proctored allowance history", "content_type": 301, "codename": "change_proctoredexamstudentallowancehistory"}}, {"model": "auth.permission", "pk": 908, "fields": {"name": "Can delete proctored allowance history", "content_type": 301, "codename": "delete_proctoredexamstudentallowancehistory"}}, {"model": "auth.permission", "pk": 909, "fields": {"name": "Can add Proctored exam software secure review", "content_type": 302, "codename": "add_proctoredexamsoftwaresecurereview"}}, {"model": "auth.permission", "pk": 910, "fields": {"name": "Can change Proctored exam software secure review", "content_type": 302, "codename": "change_proctoredexamsoftwaresecurereview"}}, {"model": "auth.permission", "pk": 911, "fields": {"name": "Can delete Proctored exam software secure review", "content_type": 302, "codename": "delete_proctoredexamsoftwaresecurereview"}}, {"model": "auth.permission", "pk": 912, "fields": {"name": "Can add Proctored exam review archive", "content_type": 303, "codename": "add_proctoredexamsoftwaresecurereviewhistory"}}, {"model": "auth.permission", "pk": 913, "fields": {"name": "Can change Proctored exam review archive", "content_type": 303, "codename": "change_proctoredexamsoftwaresecurereviewhistory"}}, {"model": "auth.permission", "pk": 914, "fields": {"name": "Can delete Proctored exam review archive", "content_type": 303, "codename": "delete_proctoredexamsoftwaresecurereviewhistory"}}, {"model": "auth.permission", "pk": 915, "fields": {"name": "Can add proctored exam software secure comment", "content_type": 304, "codename": "add_proctoredexamsoftwaresecurecomment"}}, {"model": "auth.permission", "pk": 916, "fields": {"name": "Can change proctored exam software secure comment", "content_type": 304, "codename": "change_proctoredexamsoftwaresecurecomment"}}, {"model": "auth.permission", "pk": 917, "fields": {"name": "Can delete proctored exam software secure comment", "content_type": 304, "codename": "delete_proctoredexamsoftwaresecurecomment"}}, {"model": "auth.permission", "pk": 918, "fields": {"name": "Can add organization", "content_type": 305, "codename": "add_organization"}}, {"model": "auth.permission", "pk": 919, "fields": {"name": "Can change organization", "content_type": 305, "codename": "change_organization"}}, {"model": "auth.permission", "pk": 920, "fields": {"name": "Can delete organization", "content_type": 305, "codename": "delete_organization"}}, {"model": "auth.permission", "pk": 921, "fields": {"name": "Can add Link Course", "content_type": 306, "codename": "add_organizationcourse"}}, {"model": "auth.permission", "pk": 922, "fields": {"name": "Can change Link Course", "content_type": 306, "codename": "change_organizationcourse"}}, {"model": "auth.permission", "pk": 923, "fields": {"name": "Can delete Link Course", "content_type": 306, "codename": "delete_organizationcourse"}}, {"model": "auth.permission", "pk": 924, "fields": {"name": "Can add historical Enterprise Customer", "content_type": 307, "codename": "add_historicalenterprisecustomer"}}, {"model": "auth.permission", "pk": 925, "fields": {"name": "Can change historical Enterprise Customer", "content_type": 307, "codename": "change_historicalenterprisecustomer"}}, {"model": "auth.permission", "pk": 926, "fields": {"name": "Can delete historical Enterprise Customer", "content_type": 307, "codename": "delete_historicalenterprisecustomer"}}, {"model": "auth.permission", "pk": 927, "fields": {"name": "Can add Enterprise Customer", "content_type": 308, "codename": "add_enterprisecustomer"}}, {"model": "auth.permission", "pk": 928, "fields": {"name": "Can change Enterprise Customer", "content_type": 308, "codename": "change_enterprisecustomer"}}, {"model": "auth.permission", "pk": 929, "fields": {"name": "Can delete Enterprise Customer", "content_type": 308, "codename": "delete_enterprisecustomer"}}, {"model": "auth.permission", "pk": 930, "fields": {"name": "Can add Enterprise Customer Learner", "content_type": 309, "codename": "add_enterprisecustomeruser"}}, {"model": "auth.permission", "pk": 931, "fields": {"name": "Can change Enterprise Customer Learner", "content_type": 309, "codename": "change_enterprisecustomeruser"}}, {"model": "auth.permission", "pk": 932, "fields": {"name": "Can delete Enterprise Customer Learner", "content_type": 309, "codename": "delete_enterprisecustomeruser"}}, {"model": "auth.permission", "pk": 933, "fields": {"name": "Can add pending enterprise customer user", "content_type": 310, "codename": "add_pendingenterprisecustomeruser"}}, {"model": "auth.permission", "pk": 934, "fields": {"name": "Can change pending enterprise customer user", "content_type": 310, "codename": "change_pendingenterprisecustomeruser"}}, {"model": "auth.permission", "pk": 935, "fields": {"name": "Can delete pending enterprise customer user", "content_type": 310, "codename": "delete_pendingenterprisecustomeruser"}}, {"model": "auth.permission", "pk": 936, "fields": {"name": "Can add pending enrollment", "content_type": 311, "codename": "add_pendingenrollment"}}, {"model": "auth.permission", "pk": 937, "fields": {"name": "Can change pending enrollment", "content_type": 311, "codename": "change_pendingenrollment"}}, {"model": "auth.permission", "pk": 938, "fields": {"name": "Can delete pending enrollment", "content_type": 311, "codename": "delete_pendingenrollment"}}, {"model": "auth.permission", "pk": 939, "fields": {"name": "Can add Branding Configuration", "content_type": 312, "codename": "add_enterprisecustomerbrandingconfiguration"}}, {"model": "auth.permission", "pk": 940, "fields": {"name": "Can change Branding Configuration", "content_type": 312, "codename": "change_enterprisecustomerbrandingconfiguration"}}, {"model": "auth.permission", "pk": 941, "fields": {"name": "Can delete Branding Configuration", "content_type": 312, "codename": "delete_enterprisecustomerbrandingconfiguration"}}, {"model": "auth.permission", "pk": 942, "fields": {"name": "Can add enterprise customer identity provider", "content_type": 313, "codename": "add_enterprisecustomeridentityprovider"}}, {"model": "auth.permission", "pk": 943, "fields": {"name": "Can change enterprise customer identity provider", "content_type": 313, "codename": "change_enterprisecustomeridentityprovider"}}, {"model": "auth.permission", "pk": 944, "fields": {"name": "Can delete enterprise customer identity provider", "content_type": 313, "codename": "delete_enterprisecustomeridentityprovider"}}, {"model": "auth.permission", "pk": 945, "fields": {"name": "Can add historical Enterprise Customer Entitlement", "content_type": 314, "codename": "add_historicalenterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 946, "fields": {"name": "Can change historical Enterprise Customer Entitlement", "content_type": 314, "codename": "change_historicalenterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 947, "fields": {"name": "Can delete historical Enterprise Customer Entitlement", "content_type": 314, "codename": "delete_historicalenterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 948, "fields": {"name": "Can add Enterprise Customer Entitlement", "content_type": 315, "codename": "add_enterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 949, "fields": {"name": "Can change Enterprise Customer Entitlement", "content_type": 315, "codename": "change_enterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 950, "fields": {"name": "Can delete Enterprise Customer Entitlement", "content_type": 315, "codename": "delete_enterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 951, "fields": {"name": "Can add historical enterprise course enrollment", "content_type": 316, "codename": "add_historicalenterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 952, "fields": {"name": "Can change historical enterprise course enrollment", "content_type": 316, "codename": "change_historicalenterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 953, "fields": {"name": "Can delete historical enterprise course enrollment", "content_type": 316, "codename": "delete_historicalenterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 954, "fields": {"name": "Can add enterprise course enrollment", "content_type": 317, "codename": "add_enterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 955, "fields": {"name": "Can change enterprise course enrollment", "content_type": 317, "codename": "change_enterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 956, "fields": {"name": "Can delete enterprise course enrollment", "content_type": 317, "codename": "delete_enterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 957, "fields": {"name": "Can add historical Enterprise Customer Catalog", "content_type": 318, "codename": "add_historicalenterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 958, "fields": {"name": "Can change historical Enterprise Customer Catalog", "content_type": 318, "codename": "change_historicalenterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 959, "fields": {"name": "Can delete historical Enterprise Customer Catalog", "content_type": 318, "codename": "delete_historicalenterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 960, "fields": {"name": "Can add Enterprise Customer Catalog", "content_type": 319, "codename": "add_enterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 961, "fields": {"name": "Can change Enterprise Customer Catalog", "content_type": 319, "codename": "change_enterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 962, "fields": {"name": "Can delete Enterprise Customer Catalog", "content_type": 319, "codename": "delete_enterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 963, "fields": {"name": "Can add historical enrollment notification email template", "content_type": 320, "codename": "add_historicalenrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 964, "fields": {"name": "Can change historical enrollment notification email template", "content_type": 320, "codename": "change_historicalenrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 965, "fields": {"name": "Can delete historical enrollment notification email template", "content_type": 320, "codename": "delete_historicalenrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 966, "fields": {"name": "Can add enrollment notification email template", "content_type": 321, "codename": "add_enrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 967, "fields": {"name": "Can change enrollment notification email template", "content_type": 321, "codename": "change_enrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 968, "fields": {"name": "Can delete enrollment notification email template", "content_type": 321, "codename": "delete_enrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 969, "fields": {"name": "Can add enterprise customer reporting configuration", "content_type": 322, "codename": "add_enterprisecustomerreportingconfiguration"}}, {"model": "auth.permission", "pk": 970, "fields": {"name": "Can change enterprise customer reporting configuration", "content_type": 322, "codename": "change_enterprisecustomerreportingconfiguration"}}, {"model": "auth.permission", "pk": 971, "fields": {"name": "Can delete enterprise customer reporting configuration", "content_type": 322, "codename": "delete_enterprisecustomerreportingconfiguration"}}, {"model": "auth.permission", "pk": 972, "fields": {"name": "Can add historical Data Sharing Consent Record", "content_type": 323, "codename": "add_historicaldatasharingconsent"}}, {"model": "auth.permission", "pk": 973, "fields": {"name": "Can change historical Data Sharing Consent Record", "content_type": 323, "codename": "change_historicaldatasharingconsent"}}, {"model": "auth.permission", "pk": 974, "fields": {"name": "Can delete historical Data Sharing Consent Record", "content_type": 323, "codename": "delete_historicaldatasharingconsent"}}, {"model": "auth.permission", "pk": 975, "fields": {"name": "Can add Data Sharing Consent Record", "content_type": 324, "codename": "add_datasharingconsent"}}, {"model": "auth.permission", "pk": 976, "fields": {"name": "Can change Data Sharing Consent Record", "content_type": 324, "codename": "change_datasharingconsent"}}, {"model": "auth.permission", "pk": 977, "fields": {"name": "Can delete Data Sharing Consent Record", "content_type": 324, "codename": "delete_datasharingconsent"}}, {"model": "auth.permission", "pk": 978, "fields": {"name": "Can add learner data transmission audit", "content_type": 325, "codename": "add_learnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 979, "fields": {"name": "Can change learner data transmission audit", "content_type": 325, "codename": "change_learnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 980, "fields": {"name": "Can delete learner data transmission audit", "content_type": 325, "codename": "delete_learnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 981, "fields": {"name": "Can add catalog transmission audit", "content_type": 326, "codename": "add_catalogtransmissionaudit"}}, {"model": "auth.permission", "pk": 982, "fields": {"name": "Can change catalog transmission audit", "content_type": 326, "codename": "change_catalogtransmissionaudit"}}, {"model": "auth.permission", "pk": 983, "fields": {"name": "Can delete catalog transmission audit", "content_type": 326, "codename": "delete_catalogtransmissionaudit"}}, {"model": "auth.permission", "pk": 984, "fields": {"name": "Can add degreed global configuration", "content_type": 327, "codename": "add_degreedglobalconfiguration"}}, {"model": "auth.permission", "pk": 985, "fields": {"name": "Can change degreed global configuration", "content_type": 327, "codename": "change_degreedglobalconfiguration"}}, {"model": "auth.permission", "pk": 986, "fields": {"name": "Can delete degreed global configuration", "content_type": 327, "codename": "delete_degreedglobalconfiguration"}}, {"model": "auth.permission", "pk": 987, "fields": {"name": "Can add historical degreed enterprise customer configuration", "content_type": 328, "codename": "add_historicaldegreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 988, "fields": {"name": "Can change historical degreed enterprise customer configuration", "content_type": 328, "codename": "change_historicaldegreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 989, "fields": {"name": "Can delete historical degreed enterprise customer configuration", "content_type": 328, "codename": "delete_historicaldegreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 990, "fields": {"name": "Can add degreed enterprise customer configuration", "content_type": 329, "codename": "add_degreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 991, "fields": {"name": "Can change degreed enterprise customer configuration", "content_type": 329, "codename": "change_degreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 992, "fields": {"name": "Can delete degreed enterprise customer configuration", "content_type": 329, "codename": "delete_degreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 993, "fields": {"name": "Can add degreed learner data transmission audit", "content_type": 330, "codename": "add_degreedlearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 994, "fields": {"name": "Can change degreed learner data transmission audit", "content_type": 330, "codename": "change_degreedlearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 995, "fields": {"name": "Can delete degreed learner data transmission audit", "content_type": 330, "codename": "delete_degreedlearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 996, "fields": {"name": "Can add sap success factors global configuration", "content_type": 331, "codename": "add_sapsuccessfactorsglobalconfiguration"}}, {"model": "auth.permission", "pk": 997, "fields": {"name": "Can change sap success factors global configuration", "content_type": 331, "codename": "change_sapsuccessfactorsglobalconfiguration"}}, {"model": "auth.permission", "pk": 998, "fields": {"name": "Can delete sap success factors global configuration", "content_type": 331, "codename": "delete_sapsuccessfactorsglobalconfiguration"}}, {"model": "auth.permission", "pk": 999, "fields": {"name": "Can add historical sap success factors enterprise customer configuration", "content_type": 332, "codename": "add_historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1000, "fields": {"name": "Can change historical sap success factors enterprise customer configuration", "content_type": 332, "codename": "change_historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1001, "fields": {"name": "Can delete historical sap success factors enterprise customer configuration", "content_type": 332, "codename": "delete_historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1002, "fields": {"name": "Can add sap success factors enterprise customer configuration", "content_type": 333, "codename": "add_sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1003, "fields": {"name": "Can change sap success factors enterprise customer configuration", "content_type": 333, "codename": "change_sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1004, "fields": {"name": "Can delete sap success factors enterprise customer configuration", "content_type": 333, "codename": "delete_sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1005, "fields": {"name": "Can add sap success factors learner data transmission audit", "content_type": 334, "codename": "add_sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 1006, "fields": {"name": "Can change sap success factors learner data transmission audit", "content_type": 334, "codename": "change_sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 1007, "fields": {"name": "Can delete sap success factors learner data transmission audit", "content_type": 334, "codename": "delete_sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 1008, "fields": {"name": "Can add custom course for ed x", "content_type": 335, "codename": "add_customcourseforedx"}}, {"model": "auth.permission", "pk": 1009, "fields": {"name": "Can change custom course for ed x", "content_type": 335, "codename": "change_customcourseforedx"}}, {"model": "auth.permission", "pk": 1010, "fields": {"name": "Can delete custom course for ed x", "content_type": 335, "codename": "delete_customcourseforedx"}}, {"model": "auth.permission", "pk": 1011, "fields": {"name": "Can add ccx field override", "content_type": 336, "codename": "add_ccxfieldoverride"}}, {"model": "auth.permission", "pk": 1012, "fields": {"name": "Can change ccx field override", "content_type": 336, "codename": "change_ccxfieldoverride"}}, {"model": "auth.permission", "pk": 1013, "fields": {"name": "Can delete ccx field override", "content_type": 336, "codename": "delete_ccxfieldoverride"}}, {"model": "auth.permission", "pk": 1014, "fields": {"name": "Can add CCX Connector", "content_type": 337, "codename": "add_ccxcon"}}, {"model": "auth.permission", "pk": 1015, "fields": {"name": "Can change CCX Connector", "content_type": 337, "codename": "change_ccxcon"}}, {"model": "auth.permission", "pk": 1016, "fields": {"name": "Can delete CCX Connector", "content_type": 337, "codename": "delete_ccxcon"}}, {"model": "auth.permission", "pk": 1017, "fields": {"name": "Can add student module history extended", "content_type": 338, "codename": "add_studentmodulehistoryextended"}}, {"model": "auth.permission", "pk": 1018, "fields": {"name": "Can change student module history extended", "content_type": 338, "codename": "change_studentmodulehistoryextended"}}, {"model": "auth.permission", "pk": 1019, "fields": {"name": "Can delete student module history extended", "content_type": 338, "codename": "delete_studentmodulehistoryextended"}}, {"model": "auth.permission", "pk": 1020, "fields": {"name": "Can add video upload config", "content_type": 339, "codename": "add_videouploadconfig"}}, {"model": "auth.permission", "pk": 1021, "fields": {"name": "Can change video upload config", "content_type": 339, "codename": "change_videouploadconfig"}}, {"model": "auth.permission", "pk": 1022, "fields": {"name": "Can delete video upload config", "content_type": 339, "codename": "delete_videouploadconfig"}}, {"model": "auth.permission", "pk": 1023, "fields": {"name": "Can add push notification config", "content_type": 340, "codename": "add_pushnotificationconfig"}}, {"model": "auth.permission", "pk": 1024, "fields": {"name": "Can change push notification config", "content_type": 340, "codename": "change_pushnotificationconfig"}}, {"model": "auth.permission", "pk": 1025, "fields": {"name": "Can delete push notification config", "content_type": 340, "codename": "delete_pushnotificationconfig"}}, {"model": "auth.permission", "pk": 1026, "fields": {"name": "Can add new assets page flag", "content_type": 341, "codename": "add_newassetspageflag"}}, {"model": "auth.permission", "pk": 1027, "fields": {"name": "Can change new assets page flag", "content_type": 341, "codename": "change_newassetspageflag"}}, {"model": "auth.permission", "pk": 1028, "fields": {"name": "Can delete new assets page flag", "content_type": 341, "codename": "delete_newassetspageflag"}}, {"model": "auth.permission", "pk": 1029, "fields": {"name": "Can add course new assets page flag", "content_type": 342, "codename": "add_coursenewassetspageflag"}}, {"model": "auth.permission", "pk": 1030, "fields": {"name": "Can change course new assets page flag", "content_type": 342, "codename": "change_coursenewassetspageflag"}}, {"model": "auth.permission", "pk": 1031, "fields": {"name": "Can delete course new assets page flag", "content_type": 342, "codename": "delete_coursenewassetspageflag"}}, {"model": "auth.permission", "pk": 1032, "fields": {"name": "Can add course creator", "content_type": 343, "codename": "add_coursecreator"}}, {"model": "auth.permission", "pk": 1033, "fields": {"name": "Can change course creator", "content_type": 343, "codename": "change_coursecreator"}}, {"model": "auth.permission", "pk": 1034, "fields": {"name": "Can delete course creator", "content_type": 343, "codename": "delete_coursecreator"}}, {"model": "auth.permission", "pk": 1035, "fields": {"name": "Can add studio config", "content_type": 344, "codename": "add_studioconfig"}}, {"model": "auth.permission", "pk": 1036, "fields": {"name": "Can change studio config", "content_type": 344, "codename": "change_studioconfig"}}, {"model": "auth.permission", "pk": 1037, "fields": {"name": "Can delete studio config", "content_type": 344, "codename": "delete_studioconfig"}}, {"model": "auth.permission", "pk": 1038, "fields": {"name": "Can add course edit lti fields enabled flag", "content_type": 345, "codename": "add_courseeditltifieldsenabledflag"}}, {"model": "auth.permission", "pk": 1039, "fields": {"name": "Can change course edit lti fields enabled flag", "content_type": 345, "codename": "change_courseeditltifieldsenabledflag"}}, {"model": "auth.permission", "pk": 1040, "fields": {"name": "Can delete course edit lti fields enabled flag", "content_type": 345, "codename": "delete_courseeditltifieldsenabledflag"}}, {"model": "auth.permission", "pk": 1041, "fields": {"name": "Can add tag category", "content_type": 346, "codename": "add_tagcategories"}}, {"model": "auth.permission", "pk": 1042, "fields": {"name": "Can change tag category", "content_type": 346, "codename": "change_tagcategories"}}, {"model": "auth.permission", "pk": 1043, "fields": {"name": "Can delete tag category", "content_type": 346, "codename": "delete_tagcategories"}}, {"model": "auth.permission", "pk": 1044, "fields": {"name": "Can add available tag value", "content_type": 347, "codename": "add_tagavailablevalues"}}, {"model": "auth.permission", "pk": 1045, "fields": {"name": "Can change available tag value", "content_type": 347, "codename": "change_tagavailablevalues"}}, {"model": "auth.permission", "pk": 1046, "fields": {"name": "Can delete available tag value", "content_type": 347, "codename": "delete_tagavailablevalues"}}, {"model": "auth.permission", "pk": 1047, "fields": {"name": "Can add user task status", "content_type": 348, "codename": "add_usertaskstatus"}}, {"model": "auth.permission", "pk": 1048, "fields": {"name": "Can change user task status", "content_type": 348, "codename": "change_usertaskstatus"}}, {"model": "auth.permission", "pk": 1049, "fields": {"name": "Can delete user task status", "content_type": 348, "codename": "delete_usertaskstatus"}}, {"model": "auth.permission", "pk": 1050, "fields": {"name": "Can add user task artifact", "content_type": 349, "codename": "add_usertaskartifact"}}, {"model": "auth.permission", "pk": 1051, "fields": {"name": "Can change user task artifact", "content_type": 349, "codename": "change_usertaskartifact"}}, {"model": "auth.permission", "pk": 1052, "fields": {"name": "Can delete user task artifact", "content_type": 349, "codename": "delete_usertaskartifact"}}, {"model": "auth.permission", "pk": 1053, "fields": {"name": "Can add course entitlement policy", "content_type": 350, "codename": "add_courseentitlementpolicy"}}, {"model": "auth.permission", "pk": 1054, "fields": {"name": "Can change course entitlement policy", "content_type": 350, "codename": "change_courseentitlementpolicy"}}, {"model": "auth.permission", "pk": 1055, "fields": {"name": "Can delete course entitlement policy", "content_type": 350, "codename": "delete_courseentitlementpolicy"}}, {"model": "auth.permission", "pk": 1056, "fields": {"name": "Can add course entitlement support detail", "content_type": 351, "codename": "add_courseentitlementsupportdetail"}}, {"model": "auth.permission", "pk": 1057, "fields": {"name": "Can change course entitlement support detail", "content_type": 351, "codename": "change_courseentitlementsupportdetail"}}, {"model": "auth.permission", "pk": 1058, "fields": {"name": "Can delete course entitlement support detail", "content_type": 351, "codename": "delete_courseentitlementsupportdetail"}}, {"model": "auth.permission", "pk": 1059, "fields": {"name": "Can add content metadata item transmission", "content_type": 352, "codename": "add_contentmetadataitemtransmission"}}, {"model": "auth.permission", "pk": 1060, "fields": {"name": "Can change content metadata item transmission", "content_type": 352, "codename": "change_contentmetadataitemtransmission"}}, {"model": "auth.permission", "pk": 1061, "fields": {"name": "Can delete content metadata item transmission", "content_type": 352, "codename": "delete_contentmetadataitemtransmission"}}, {"model": "auth.permission", "pk": 1062, "fields": {"name": "Can add transcript migration setting", "content_type": 353, "codename": "add_transcriptmigrationsetting"}}, {"model": "auth.permission", "pk": 1063, "fields": {"name": "Can change transcript migration setting", "content_type": 353, "codename": "change_transcriptmigrationsetting"}}, {"model": "auth.permission", "pk": 1064, "fields": {"name": "Can delete transcript migration setting", "content_type": 353, "codename": "delete_transcriptmigrationsetting"}}, {"model": "auth.permission", "pk": 1065, "fields": {"name": "Can add sso verification", "content_type": 354, "codename": "add_ssoverification"}}, {"model": "auth.permission", "pk": 1066, "fields": {"name": "Can change sso verification", "content_type": 354, "codename": "change_ssoverification"}}, {"model": "auth.permission", "pk": 1067, "fields": {"name": "Can delete sso verification", "content_type": 354, "codename": "delete_ssoverification"}}, {"model": "auth.permission", "pk": 1068, "fields": {"name": "Can add User Retirement Status", "content_type": 355, "codename": "add_userretirementstatus"}}, {"model": "auth.permission", "pk": 1069, "fields": {"name": "Can change User Retirement Status", "content_type": 355, "codename": "change_userretirementstatus"}}, {"model": "auth.permission", "pk": 1070, "fields": {"name": "Can delete User Retirement Status", "content_type": 355, "codename": "delete_userretirementstatus"}}, {"model": "auth.permission", "pk": 1071, "fields": {"name": "Can add retirement state", "content_type": 356, "codename": "add_retirementstate"}}, {"model": "auth.permission", "pk": 1072, "fields": {"name": "Can change retirement state", "content_type": 356, "codename": "change_retirementstate"}}, {"model": "auth.permission", "pk": 1073, "fields": {"name": "Can delete retirement state", "content_type": 356, "codename": "delete_retirementstate"}}, {"model": "auth.permission", "pk": 1074, "fields": {"name": "Can add data sharing consent text overrides", "content_type": 357, "codename": "add_datasharingconsenttextoverrides"}}, {"model": "auth.permission", "pk": 1075, "fields": {"name": "Can change data sharing consent text overrides", "content_type": 357, "codename": "change_datasharingconsenttextoverrides"}}, {"model": "auth.permission", "pk": 1076, "fields": {"name": "Can delete data sharing consent text overrides", "content_type": 357, "codename": "delete_datasharingconsenttextoverrides"}}, {"model": "auth.permission", "pk": 1077, "fields": {"name": "Can add User Retirement Request", "content_type": 358, "codename": "add_userretirementrequest"}}, {"model": "auth.permission", "pk": 1078, "fields": {"name": "Can change User Retirement Request", "content_type": 358, "codename": "change_userretirementrequest"}}, {"model": "auth.permission", "pk": 1079, "fields": {"name": "Can delete User Retirement Request", "content_type": 358, "codename": "delete_userretirementrequest"}}, {"model": "auth.permission", "pk": 1080, "fields": {"name": "Can add discussions id mapping", "content_type": 359, "codename": "add_discussionsidmapping"}}, {"model": "auth.permission", "pk": 1081, "fields": {"name": "Can change discussions id mapping", "content_type": 359, "codename": "change_discussionsidmapping"}}, {"model": "auth.permission", "pk": 1082, "fields": {"name": "Can delete discussions id mapping", "content_type": 359, "codename": "delete_discussionsidmapping"}}, {"model": "auth.permission", "pk": 1083, "fields": {"name": "Can add scoped application", "content_type": 360, "codename": "add_scopedapplication"}}, {"model": "auth.permission", "pk": 1084, "fields": {"name": "Can change scoped application", "content_type": 360, "codename": "change_scopedapplication"}}, {"model": "auth.permission", "pk": 1085, "fields": {"name": "Can delete scoped application", "content_type": 360, "codename": "delete_scopedapplication"}}, {"model": "auth.permission", "pk": 1086, "fields": {"name": "Can add scoped application organization", "content_type": 361, "codename": "add_scopedapplicationorganization"}}, {"model": "auth.permission", "pk": 1087, "fields": {"name": "Can change scoped application organization", "content_type": 361, "codename": "change_scopedapplicationorganization"}}, {"model": "auth.permission", "pk": 1088, "fields": {"name": "Can delete scoped application organization", "content_type": 361, "codename": "delete_scopedapplicationorganization"}}, {"model": "auth.permission", "pk": 1089, "fields": {"name": "Can add User Retirement Reporting Status", "content_type": 362, "codename": "add_userretirementpartnerreportingstatus"}}, {"model": "auth.permission", "pk": 1090, "fields": {"name": "Can change User Retirement Reporting Status", "content_type": 362, "codename": "change_userretirementpartnerreportingstatus"}}, {"model": "auth.permission", "pk": 1091, "fields": {"name": "Can delete User Retirement Reporting Status", "content_type": 362, "codename": "delete_userretirementpartnerreportingstatus"}}, {"model": "auth.permission", "pk": 1092, "fields": {"name": "Can add manual verification", "content_type": 363, "codename": "add_manualverification"}}, {"model": "auth.permission", "pk": 1093, "fields": {"name": "Can change manual verification", "content_type": 363, "codename": "change_manualverification"}}, {"model": "auth.permission", "pk": 1094, "fields": {"name": "Can delete manual verification", "content_type": 363, "codename": "delete_manualverification"}}, {"model": "auth.permission", "pk": 1095, "fields": {"name": "Can add application organization", "content_type": 364, "codename": "add_applicationorganization"}}, {"model": "auth.permission", "pk": 1096, "fields": {"name": "Can change application organization", "content_type": 364, "codename": "change_applicationorganization"}}, {"model": "auth.permission", "pk": 1097, "fields": {"name": "Can delete application organization", "content_type": 364, "codename": "delete_applicationorganization"}}, {"model": "auth.permission", "pk": 1098, "fields": {"name": "Can add application access", "content_type": 365, "codename": "add_applicationaccess"}}, {"model": "auth.permission", "pk": 1099, "fields": {"name": "Can change application access", "content_type": 365, "codename": "change_applicationaccess"}}, {"model": "auth.permission", "pk": 1100, "fields": {"name": "Can delete application access", "content_type": 365, "codename": "delete_applicationaccess"}}, {"model": "auth.permission", "pk": 1101, "fields": {"name": "Can add migration enqueued course", "content_type": 366, "codename": "add_migrationenqueuedcourse"}}, {"model": "auth.permission", "pk": 1102, "fields": {"name": "Can change migration enqueued course", "content_type": 366, "codename": "change_migrationenqueuedcourse"}}, {"model": "auth.permission", "pk": 1103, "fields": {"name": "Can delete migration enqueued course", "content_type": 366, "codename": "delete_migrationenqueuedcourse"}}, {"model": "auth.permission", "pk": 1104, "fields": {"name": "Can add xapilrs configuration", "content_type": 367, "codename": "add_xapilrsconfiguration"}}, {"model": "auth.permission", "pk": 1105, "fields": {"name": "Can change xapilrs configuration", "content_type": 367, "codename": "change_xapilrsconfiguration"}}, {"model": "auth.permission", "pk": 1106, "fields": {"name": "Can delete xapilrs configuration", "content_type": 367, "codename": "delete_xapilrsconfiguration"}}, {"model": "auth.permission", "pk": 1107, "fields": {"name": "Can add notify_credentials argument", "content_type": 368, "codename": "add_notifycredentialsconfig"}}, {"model": "auth.permission", "pk": 1108, "fields": {"name": "Can change notify_credentials argument", "content_type": 368, "codename": "change_notifycredentialsconfig"}}, {"model": "auth.permission", "pk": 1109, "fields": {"name": "Can delete notify_credentials argument", "content_type": 368, "codename": "delete_notifycredentialsconfig"}}, {"model": "auth.permission", "pk": 1110, "fields": {"name": "Can add updated course videos", "content_type": 369, "codename": "add_updatedcoursevideos"}}, {"model": "auth.permission", "pk": 1111, "fields": {"name": "Can change updated course videos", "content_type": 369, "codename": "change_updatedcoursevideos"}}, {"model": "auth.permission", "pk": 1112, "fields": {"name": "Can delete updated course videos", "content_type": 369, "codename": "delete_updatedcoursevideos"}}, {"model": "auth.permission", "pk": 1113, "fields": {"name": "Can add video thumbnail setting", "content_type": 370, "codename": "add_videothumbnailsetting"}}, {"model": "auth.permission", "pk": 1114, "fields": {"name": "Can change video thumbnail setting", "content_type": 370, "codename": "change_videothumbnailsetting"}}, {"model": "auth.permission", "pk": 1115, "fields": {"name": "Can delete video thumbnail setting", "content_type": 370, "codename": "delete_videothumbnailsetting"}}, {"model": "auth.permission", "pk": 1116, "fields": {"name": "Can add course duration limit config", "content_type": 371, "codename": "add_coursedurationlimitconfig"}}, {"model": "auth.permission", "pk": 1117, "fields": {"name": "Can change course duration limit config", "content_type": 371, "codename": "change_coursedurationlimitconfig"}}, {"model": "auth.permission", "pk": 1118, "fields": {"name": "Can delete course duration limit config", "content_type": 371, "codename": "delete_coursedurationlimitconfig"}}, {"model": "auth.permission", "pk": 1119, "fields": {"name": "Can add content type gating config", "content_type": 372, "codename": "add_contenttypegatingconfig"}}, {"model": "auth.permission", "pk": 1120, "fields": {"name": "Can change content type gating config", "content_type": 372, "codename": "change_contenttypegatingconfig"}}, {"model": "auth.permission", "pk": 1121, "fields": {"name": "Can delete content type gating config", "content_type": 372, "codename": "delete_contenttypegatingconfig"}}, {"model": "auth.permission", "pk": 1122, "fields": {"name": "Can add persistent subsection grade override history", "content_type": 373, "codename": "add_persistentsubsectiongradeoverridehistory"}}, {"model": "auth.permission", "pk": 1123, "fields": {"name": "Can change persistent subsection grade override history", "content_type": 373, "codename": "change_persistentsubsectiongradeoverridehistory"}}, {"model": "auth.permission", "pk": 1124, "fields": {"name": "Can delete persistent subsection grade override history", "content_type": 373, "codename": "delete_persistentsubsectiongradeoverridehistory"}}, {"model": "auth.permission", "pk": 1125, "fields": {"name": "Can add account recovery", "content_type": 374, "codename": "add_accountrecovery"}}, {"model": "auth.permission", "pk": 1126, "fields": {"name": "Can change account recovery", "content_type": 374, "codename": "change_accountrecovery"}}, {"model": "auth.permission", "pk": 1127, "fields": {"name": "Can delete account recovery", "content_type": 374, "codename": "delete_accountrecovery"}}, {"model": "auth.permission", "pk": 1128, "fields": {"name": "Can add Enterprise Customer Type", "content_type": 375, "codename": "add_enterprisecustomertype"}}, {"model": "auth.permission", "pk": 1129, "fields": {"name": "Can change Enterprise Customer Type", "content_type": 375, "codename": "change_enterprisecustomertype"}}, {"model": "auth.permission", "pk": 1130, "fields": {"name": "Can delete Enterprise Customer Type", "content_type": 375, "codename": "delete_enterprisecustomertype"}}, {"model": "auth.permission", "pk": 1131, "fields": {"name": "Can add pending secondary email change", "content_type": 376, "codename": "add_pendingsecondaryemailchange"}}, {"model": "auth.permission", "pk": 1132, "fields": {"name": "Can change pending secondary email change", "content_type": 376, "codename": "change_pendingsecondaryemailchange"}}, {"model": "auth.permission", "pk": 1133, "fields": {"name": "Can delete pending secondary email change", "content_type": 376, "codename": "delete_pendingsecondaryemailchange"}}, {"model": "auth.permission", "pk": 1134, "fields": {"name": "Can add lti consumer", "content_type": 377, "codename": "add_lticonsumer"}}, {"model": "auth.permission", "pk": 1135, "fields": {"name": "Can change lti consumer", "content_type": 377, "codename": "change_lticonsumer"}}, {"model": "auth.permission", "pk": 1136, "fields": {"name": "Can delete lti consumer", "content_type": 377, "codename": "delete_lticonsumer"}}, {"model": "auth.permission", "pk": 1137, "fields": {"name": "Can add graded assignment", "content_type": 378, "codename": "add_gradedassignment"}}, {"model": "auth.permission", "pk": 1138, "fields": {"name": "Can change graded assignment", "content_type": 378, "codename": "change_gradedassignment"}}, {"model": "auth.permission", "pk": 1139, "fields": {"name": "Can delete graded assignment", "content_type": 378, "codename": "delete_gradedassignment"}}, {"model": "auth.permission", "pk": 1140, "fields": {"name": "Can add lti user", "content_type": 379, "codename": "add_ltiuser"}}, {"model": "auth.permission", "pk": 1141, "fields": {"name": "Can change lti user", "content_type": 379, "codename": "change_ltiuser"}}, {"model": "auth.permission", "pk": 1142, "fields": {"name": "Can delete lti user", "content_type": 379, "codename": "delete_ltiuser"}}, {"model": "auth.permission", "pk": 1143, "fields": {"name": "Can add outcome service", "content_type": 380, "codename": "add_outcomeservice"}}, {"model": "auth.permission", "pk": 1144, "fields": {"name": "Can change outcome service", "content_type": 380, "codename": "change_outcomeservice"}}, {"model": "auth.permission", "pk": 1145, "fields": {"name": "Can delete outcome service", "content_type": 380, "codename": "delete_outcomeservice"}}, {"model": "auth.permission", "pk": 1146, "fields": {"name": "Can add system wide enterprise role", "content_type": 381, "codename": "add_systemwideenterpriserole"}}, {"model": "auth.permission", "pk": 1147, "fields": {"name": "Can change system wide enterprise role", "content_type": 381, "codename": "change_systemwideenterpriserole"}}, {"model": "auth.permission", "pk": 1148, "fields": {"name": "Can delete system wide enterprise role", "content_type": 381, "codename": "delete_systemwideenterpriserole"}}, {"model": "auth.permission", "pk": 1149, "fields": {"name": "Can add system wide enterprise user role assignment", "content_type": 382, "codename": "add_systemwideenterpriseuserroleassignment"}}, {"model": "auth.permission", "pk": 1150, "fields": {"name": "Can change system wide enterprise user role assignment", "content_type": 382, "codename": "change_systemwideenterpriseuserroleassignment"}}, {"model": "auth.permission", "pk": 1151, "fields": {"name": "Can delete system wide enterprise user role assignment", "content_type": 382, "codename": "delete_systemwideenterpriseuserroleassignment"}}, {"model": "auth.permission", "pk": 1152, "fields": {"name": "Can add announcement", "content_type": 383, "codename": "add_announcement"}}, {"model": "auth.permission", "pk": 1153, "fields": {"name": "Can change announcement", "content_type": 383, "codename": "change_announcement"}}, {"model": "auth.permission", "pk": 1154, "fields": {"name": "Can delete announcement", "content_type": 383, "codename": "delete_announcement"}}, {"model": "auth.permission", "pk": 2267, "fields": {"name": "Can add enterprise feature user role assignment", "content_type": 753, "codename": "add_enterprisefeatureuserroleassignment"}}, {"model": "auth.permission", "pk": 2268, "fields": {"name": "Can change enterprise feature user role assignment", "content_type": 753, "codename": "change_enterprisefeatureuserroleassignment"}}, {"model": "auth.permission", "pk": 2269, "fields": {"name": "Can delete enterprise feature user role assignment", "content_type": 753, "codename": "delete_enterprisefeatureuserroleassignment"}}, {"model": "auth.permission", "pk": 2270, "fields": {"name": "Can add enterprise feature role", "content_type": 754, "codename": "add_enterprisefeaturerole"}}, {"model": "auth.permission", "pk": 2271, "fields": {"name": "Can change enterprise feature role", "content_type": 754, "codename": "change_enterprisefeaturerole"}}, {"model": "auth.permission", "pk": 2272, "fields": {"name": "Can delete enterprise feature role", "content_type": 754, "codename": "delete_enterprisefeaturerole"}}, {"model": "auth.permission", "pk": 2273, "fields": {"name": "Can add program enrollment", "content_type": 755, "codename": "add_programenrollment"}}, {"model": "auth.permission", "pk": 2274, "fields": {"name": "Can change program enrollment", "content_type": 755, "codename": "change_programenrollment"}}, {"model": "auth.permission", "pk": 2275, "fields": {"name": "Can delete program enrollment", "content_type": 755, "codename": "delete_programenrollment"}}, {"model": "auth.permission", "pk": 2276, "fields": {"name": "Can add historical program enrollment", "content_type": 756, "codename": "add_historicalprogramenrollment"}}, {"model": "auth.permission", "pk": 2277, "fields": {"name": "Can change historical program enrollment", "content_type": 756, "codename": "change_historicalprogramenrollment"}}, {"model": "auth.permission", "pk": 2278, "fields": {"name": "Can delete historical program enrollment", "content_type": 756, "codename": "delete_historicalprogramenrollment"}}, {"model": "auth.permission", "pk": 2279, "fields": {"name": "Can add program course enrollment", "content_type": 757, "codename": "add_programcourseenrollment"}}, {"model": "auth.permission", "pk": 2280, "fields": {"name": "Can change program course enrollment", "content_type": 757, "codename": "change_programcourseenrollment"}}, {"model": "auth.permission", "pk": 2281, "fields": {"name": "Can delete program course enrollment", "content_type": 757, "codename": "delete_programcourseenrollment"}}, {"model": "auth.permission", "pk": 2282, "fields": {"name": "Can add historical program course enrollment", "content_type": 758, "codename": "add_historicalprogramcourseenrollment"}}, {"model": "auth.permission", "pk": 2283, "fields": {"name": "Can change historical program course enrollment", "content_type": 758, "codename": "change_historicalprogramcourseenrollment"}}, {"model": "auth.permission", "pk": 2284, "fields": {"name": "Can delete historical program course enrollment", "content_type": 758, "codename": "delete_historicalprogramcourseenrollment"}}, {"model": "auth.permission", "pk": 2285, "fields": {"name": "Can add content date", "content_type": 759, "codename": "add_contentdate"}}, {"model": "auth.permission", "pk": 2286, "fields": {"name": "Can change content date", "content_type": 759, "codename": "change_contentdate"}}, {"model": "auth.permission", "pk": 2287, "fields": {"name": "Can delete content date", "content_type": 759, "codename": "delete_contentdate"}}, {"model": "auth.permission", "pk": 2288, "fields": {"name": "Can add user date", "content_type": 760, "codename": "add_userdate"}}, {"model": "auth.permission", "pk": 2289, "fields": {"name": "Can change user date", "content_type": 760, "codename": "change_userdate"}}, {"model": "auth.permission", "pk": 2290, "fields": {"name": "Can delete user date", "content_type": 760, "codename": "delete_userdate"}}, {"model": "auth.permission", "pk": 2291, "fields": {"name": "Can add date policy", "content_type": 761, "codename": "add_datepolicy"}}, {"model": "auth.permission", "pk": 2292, "fields": {"name": "Can change date policy", "content_type": 761, "codename": "change_datepolicy"}}, {"model": "auth.permission", "pk": 2293, "fields": {"name": "Can delete date policy", "content_type": 761, "codename": "delete_datepolicy"}}, {"model": "auth.group", "pk": 1, "fields": {"name": "API Access Request Approvers", "permissions": []}}, {"model": "auth.user", "pk": 1, "fields": {"password": "!FXJJHcjbqdW2yNqrkNvJXSnTXxNZVYIj3SsIt7BB", "last_login": null, "is_superuser": false, "username": "ecommerce_worker", "first_name": "", "last_name": "", "email": "ecommerce_worker@fake.email", "is_staff": false, "is_active": true, "date_joined": "2017-12-06T02:20:20.329Z", "groups": [], "user_permissions": []}}, {"model": "auth.user", "pk": 2, "fields": {"password": "!rUv06Bh8BQoqyhkOEl2BtUKUwOX3NlpCVPBSwqBj", "last_login": null, "is_superuser": false, "username": "login_service_user", "first_name": "", "last_name": "", "email": "login_service_user@fake.email", "is_staff": false, "is_active": true, "date_joined": "2018-10-25T14:53:08.044Z", "groups": [], "user_permissions": []}}, {"model": "util.ratelimitconfiguration", "pk": 1, "fields": {"change_date": "2017-12-06T02:37:46.125Z", "changed_by": null, "enabled": true}}, {"model": "certificates.certificatehtmlviewconfiguration", "pk": 1, "fields": {"change_date": "2017-12-06T02:19:25.679Z", "changed_by": null, "enabled": false, "configuration": "{\"default\": {\"accomplishment_class_append\": \"accomplishment-certificate\", \"platform_name\": \"Your Platform Name Here\", \"logo_src\": \"/static/certificates/images/logo.png\", \"logo_url\": \"http://www.example.com\", \"company_verified_certificate_url\": \"http://www.example.com/verified-certificate\", \"company_privacy_url\": \"http://www.example.com/privacy-policy\", \"company_tos_url\": \"http://www.example.com/terms-service\", \"company_about_url\": \"http://www.example.com/about-us\"}, \"verified\": {\"certificate_type\": \"Verified\", \"certificate_title\": \"Verified Certificate of Achievement\"}, \"honor\": {\"certificate_type\": \"Honor Code\", \"certificate_title\": \"Certificate of Achievement\"}}"}}, {"model": "oauth2_provider.application", "pk": 2, "fields": {"client_id": "login-service-client-id", "user": 2, "redirect_uris": "", "client_type": "public", "authorization_grant_type": "password", "client_secret": "mpAwLT424Wm3HQfjVydNCceq7ZOERB72jVuzLSo0B7KldmPHqCmYQNyCMS2mklqzJN4XyT7VRcqHG7bHC0KDHIqcOAMpMisuCi7jIigmseHKKLjgjsx6DM9Rem2cOvO6", "name": "Login Service for JWT Cookies", "skip_authorization": false, "created": "2018-10-25T14:53:08.054Z", "updated": "2018-10-25T14:53:08.054Z"}}, {"model": "django_comment_common.forumsconfig", "pk": 1, "fields": {"change_date": "2017-12-06T02:23:41.040Z", "changed_by": null, "enabled": true, "connection_timeout": 5.0}}, {"model": "dark_lang.darklangconfig", "pk": 1, "fields": {"change_date": "2017-12-06T02:22:45.120Z", "changed_by": null, "enabled": true, "released_languages": "", "enable_beta_languages": false, "beta_languages": ""}}] \ No newline at end of file +[{"model": "contenttypes.contenttype", "pk": 1, "fields": {"app_label": "api_admin", "model": "apiaccessrequest"}}, {"model": "contenttypes.contenttype", "pk": 2, "fields": {"app_label": "auth", "model": "permission"}}, {"model": "contenttypes.contenttype", "pk": 3, "fields": {"app_label": "auth", "model": "group"}}, {"model": "contenttypes.contenttype", "pk": 4, "fields": {"app_label": "auth", "model": "user"}}, {"model": "contenttypes.contenttype", "pk": 5, "fields": {"app_label": "contenttypes", "model": "contenttype"}}, {"model": "contenttypes.contenttype", "pk": 6, "fields": {"app_label": "redirects", "model": "redirect"}}, {"model": "contenttypes.contenttype", "pk": 7, "fields": {"app_label": "sessions", "model": "session"}}, {"model": "contenttypes.contenttype", "pk": 8, "fields": {"app_label": "sites", "model": "site"}}, {"model": "contenttypes.contenttype", "pk": 9, "fields": {"app_label": "djcelery", "model": "taskmeta"}}, {"model": "contenttypes.contenttype", "pk": 10, "fields": {"app_label": "djcelery", "model": "tasksetmeta"}}, {"model": "contenttypes.contenttype", "pk": 11, "fields": {"app_label": "djcelery", "model": "intervalschedule"}}, {"model": "contenttypes.contenttype", "pk": 12, "fields": {"app_label": "djcelery", "model": "crontabschedule"}}, {"model": "contenttypes.contenttype", "pk": 13, "fields": {"app_label": "djcelery", "model": "periodictasks"}}, {"model": "contenttypes.contenttype", "pk": 14, "fields": {"app_label": "djcelery", "model": "periodictask"}}, {"model": "contenttypes.contenttype", "pk": 15, "fields": {"app_label": "djcelery", "model": "workerstate"}}, {"model": "contenttypes.contenttype", "pk": 16, "fields": {"app_label": "djcelery", "model": "taskstate"}}, {"model": "contenttypes.contenttype", "pk": 17, "fields": {"app_label": "waffle", "model": "flag"}}, {"model": "contenttypes.contenttype", "pk": 18, "fields": {"app_label": "waffle", "model": "switch"}}, {"model": "contenttypes.contenttype", "pk": 19, "fields": {"app_label": "waffle", "model": "sample"}}, {"model": "contenttypes.contenttype", "pk": 20, "fields": {"app_label": "status", "model": "globalstatusmessage"}}, {"model": "contenttypes.contenttype", "pk": 21, "fields": {"app_label": "status", "model": "coursemessage"}}, {"model": "contenttypes.contenttype", "pk": 22, "fields": {"app_label": "static_replace", "model": "assetbaseurlconfig"}}, {"model": "contenttypes.contenttype", "pk": 23, "fields": {"app_label": "static_replace", "model": "assetexcludedextensionsconfig"}}, {"model": "contenttypes.contenttype", "pk": 24, "fields": {"app_label": "contentserver", "model": "courseassetcachettlconfig"}}, {"model": "contenttypes.contenttype", "pk": 25, "fields": {"app_label": "contentserver", "model": "cdnuseragentsconfig"}}, {"model": "contenttypes.contenttype", "pk": 26, "fields": {"app_label": "theming", "model": "sitetheme"}}, {"model": "contenttypes.contenttype", "pk": 27, "fields": {"app_label": "site_configuration", "model": "siteconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 28, "fields": {"app_label": "site_configuration", "model": "siteconfigurationhistory"}}, {"model": "contenttypes.contenttype", "pk": 29, "fields": {"app_label": "video_config", "model": "hlsplaybackenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 30, "fields": {"app_label": "video_config", "model": "coursehlsplaybackenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 31, "fields": {"app_label": "video_config", "model": "videotranscriptenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 32, "fields": {"app_label": "video_config", "model": "coursevideotranscriptenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 33, "fields": {"app_label": "video_pipeline", "model": "videopipelineintegration"}}, {"model": "contenttypes.contenttype", "pk": 34, "fields": {"app_label": "video_pipeline", "model": "videouploadsenabledbydefault"}}, {"model": "contenttypes.contenttype", "pk": 35, "fields": {"app_label": "video_pipeline", "model": "coursevideouploadsenabledbydefault"}}, {"model": "contenttypes.contenttype", "pk": 36, "fields": {"app_label": "bookmarks", "model": "bookmark"}}, {"model": "contenttypes.contenttype", "pk": 37, "fields": {"app_label": "bookmarks", "model": "xblockcache"}}, {"model": "contenttypes.contenttype", "pk": 38, "fields": {"app_label": "courseware", "model": "studentmodule"}}, {"model": "contenttypes.contenttype", "pk": 39, "fields": {"app_label": "courseware", "model": "studentmodulehistory"}}, {"model": "contenttypes.contenttype", "pk": 40, "fields": {"app_label": "courseware", "model": "xmoduleuserstatesummaryfield"}}, {"model": "contenttypes.contenttype", "pk": 41, "fields": {"app_label": "courseware", "model": "xmodulestudentprefsfield"}}, {"model": "contenttypes.contenttype", "pk": 42, "fields": {"app_label": "courseware", "model": "xmodulestudentinfofield"}}, {"model": "contenttypes.contenttype", "pk": 43, "fields": {"app_label": "courseware", "model": "offlinecomputedgrade"}}, {"model": "contenttypes.contenttype", "pk": 44, "fields": {"app_label": "courseware", "model": "offlinecomputedgradelog"}}, {"model": "contenttypes.contenttype", "pk": 45, "fields": {"app_label": "courseware", "model": "studentfieldoverride"}}, {"model": "contenttypes.contenttype", "pk": 46, "fields": {"app_label": "courseware", "model": "dynamicupgradedeadlineconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 47, "fields": {"app_label": "courseware", "model": "coursedynamicupgradedeadlineconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 48, "fields": {"app_label": "courseware", "model": "orgdynamicupgradedeadlineconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 49, "fields": {"app_label": "student", "model": "anonymoususerid"}}, {"model": "contenttypes.contenttype", "pk": 50, "fields": {"app_label": "student", "model": "userstanding"}}, {"model": "contenttypes.contenttype", "pk": 51, "fields": {"app_label": "student", "model": "userprofile"}}, {"model": "contenttypes.contenttype", "pk": 52, "fields": {"app_label": "student", "model": "usersignupsource"}}, {"model": "contenttypes.contenttype", "pk": 53, "fields": {"app_label": "student", "model": "usertestgroup"}}, {"model": "contenttypes.contenttype", "pk": 54, "fields": {"app_label": "student", "model": "registration"}}, {"model": "contenttypes.contenttype", "pk": 55, "fields": {"app_label": "student", "model": "pendingnamechange"}}, {"model": "contenttypes.contenttype", "pk": 56, "fields": {"app_label": "student", "model": "pendingemailchange"}}, {"model": "contenttypes.contenttype", "pk": 57, "fields": {"app_label": "student", "model": "passwordhistory"}}, {"model": "contenttypes.contenttype", "pk": 58, "fields": {"app_label": "student", "model": "loginfailures"}}, {"model": "contenttypes.contenttype", "pk": 59, "fields": {"app_label": "student", "model": "courseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 60, "fields": {"app_label": "student", "model": "manualenrollmentaudit"}}, {"model": "contenttypes.contenttype", "pk": 61, "fields": {"app_label": "student", "model": "courseenrollmentallowed"}}, {"model": "contenttypes.contenttype", "pk": 62, "fields": {"app_label": "student", "model": "courseaccessrole"}}, {"model": "contenttypes.contenttype", "pk": 63, "fields": {"app_label": "student", "model": "dashboardconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 64, "fields": {"app_label": "student", "model": "linkedinaddtoprofileconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 65, "fields": {"app_label": "student", "model": "entranceexamconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 66, "fields": {"app_label": "student", "model": "languageproficiency"}}, {"model": "contenttypes.contenttype", "pk": 67, "fields": {"app_label": "student", "model": "sociallink"}}, {"model": "contenttypes.contenttype", "pk": 68, "fields": {"app_label": "student", "model": "courseenrollmentattribute"}}, {"model": "contenttypes.contenttype", "pk": 69, "fields": {"app_label": "student", "model": "enrollmentrefundconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 70, "fields": {"app_label": "student", "model": "registrationcookieconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 71, "fields": {"app_label": "student", "model": "userattribute"}}, {"model": "contenttypes.contenttype", "pk": 72, "fields": {"app_label": "student", "model": "logoutviewconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 73, "fields": {"app_label": "track", "model": "trackinglog"}}, {"model": "contenttypes.contenttype", "pk": 74, "fields": {"app_label": "util", "model": "ratelimitconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 75, "fields": {"app_label": "certificates", "model": "certificatewhitelist"}}, {"model": "contenttypes.contenttype", "pk": 76, "fields": {"app_label": "certificates", "model": "generatedcertificate"}}, {"model": "contenttypes.contenttype", "pk": 77, "fields": {"app_label": "certificates", "model": "certificategenerationhistory"}}, {"model": "contenttypes.contenttype", "pk": 78, "fields": {"app_label": "certificates", "model": "certificateinvalidation"}}, {"model": "contenttypes.contenttype", "pk": 79, "fields": {"app_label": "certificates", "model": "examplecertificateset"}}, {"model": "contenttypes.contenttype", "pk": 80, "fields": {"app_label": "certificates", "model": "examplecertificate"}}, {"model": "contenttypes.contenttype", "pk": 81, "fields": {"app_label": "certificates", "model": "certificategenerationcoursesetting"}}, {"model": "contenttypes.contenttype", "pk": 82, "fields": {"app_label": "certificates", "model": "certificategenerationconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 83, "fields": {"app_label": "certificates", "model": "certificatehtmlviewconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 84, "fields": {"app_label": "certificates", "model": "certificatetemplate"}}, {"model": "contenttypes.contenttype", "pk": 85, "fields": {"app_label": "certificates", "model": "certificatetemplateasset"}}, {"model": "contenttypes.contenttype", "pk": 86, "fields": {"app_label": "instructor_task", "model": "instructortask"}}, {"model": "contenttypes.contenttype", "pk": 87, "fields": {"app_label": "instructor_task", "model": "gradereportsetting"}}, {"model": "contenttypes.contenttype", "pk": 88, "fields": {"app_label": "course_groups", "model": "courseusergroup"}}, {"model": "contenttypes.contenttype", "pk": 89, "fields": {"app_label": "course_groups", "model": "cohortmembership"}}, {"model": "contenttypes.contenttype", "pk": 90, "fields": {"app_label": "course_groups", "model": "courseusergrouppartitiongroup"}}, {"model": "contenttypes.contenttype", "pk": 91, "fields": {"app_label": "course_groups", "model": "coursecohortssettings"}}, {"model": "contenttypes.contenttype", "pk": 92, "fields": {"app_label": "course_groups", "model": "coursecohort"}}, {"model": "contenttypes.contenttype", "pk": 93, "fields": {"app_label": "course_groups", "model": "unregisteredlearnercohortassignments"}}, {"model": "contenttypes.contenttype", "pk": 94, "fields": {"app_label": "bulk_email", "model": "target"}}, {"model": "contenttypes.contenttype", "pk": 95, "fields": {"app_label": "bulk_email", "model": "cohorttarget"}}, {"model": "contenttypes.contenttype", "pk": 96, "fields": {"app_label": "bulk_email", "model": "coursemodetarget"}}, {"model": "contenttypes.contenttype", "pk": 97, "fields": {"app_label": "bulk_email", "model": "courseemail"}}, {"model": "contenttypes.contenttype", "pk": 98, "fields": {"app_label": "bulk_email", "model": "optout"}}, {"model": "contenttypes.contenttype", "pk": 99, "fields": {"app_label": "bulk_email", "model": "courseemailtemplate"}}, {"model": "contenttypes.contenttype", "pk": 100, "fields": {"app_label": "bulk_email", "model": "courseauthorization"}}, {"model": "contenttypes.contenttype", "pk": 101, "fields": {"app_label": "bulk_email", "model": "bulkemailflag"}}, {"model": "contenttypes.contenttype", "pk": 102, "fields": {"app_label": "branding", "model": "brandinginfoconfig"}}, {"model": "contenttypes.contenttype", "pk": 103, "fields": {"app_label": "branding", "model": "brandingapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 104, "fields": {"app_label": "grades", "model": "visibleblocks"}}, {"model": "contenttypes.contenttype", "pk": 105, "fields": {"app_label": "grades", "model": "persistentsubsectiongrade"}}, {"model": "contenttypes.contenttype", "pk": 106, "fields": {"app_label": "grades", "model": "persistentcoursegrade"}}, {"model": "contenttypes.contenttype", "pk": 107, "fields": {"app_label": "grades", "model": "persistentsubsectiongradeoverride"}}, {"model": "contenttypes.contenttype", "pk": 108, "fields": {"app_label": "grades", "model": "persistentgradesenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 109, "fields": {"app_label": "grades", "model": "coursepersistentgradesflag"}}, {"model": "contenttypes.contenttype", "pk": 110, "fields": {"app_label": "grades", "model": "computegradessetting"}}, {"model": "contenttypes.contenttype", "pk": 111, "fields": {"app_label": "external_auth", "model": "externalauthmap"}}, {"model": "contenttypes.contenttype", "pk": 112, "fields": {"app_label": "django_openid_auth", "model": "nonce"}}, {"model": "contenttypes.contenttype", "pk": 113, "fields": {"app_label": "django_openid_auth", "model": "association"}}, {"model": "contenttypes.contenttype", "pk": 114, "fields": {"app_label": "django_openid_auth", "model": "useropenid"}}, {"model": "contenttypes.contenttype", "pk": 115, "fields": {"app_label": "oauth2", "model": "client"}}, {"model": "contenttypes.contenttype", "pk": 116, "fields": {"app_label": "oauth2", "model": "grant"}}, {"model": "contenttypes.contenttype", "pk": 117, "fields": {"app_label": "oauth2", "model": "accesstoken"}}, {"model": "contenttypes.contenttype", "pk": 118, "fields": {"app_label": "oauth2", "model": "refreshtoken"}}, {"model": "contenttypes.contenttype", "pk": 119, "fields": {"app_label": "edx_oauth2_provider", "model": "trustedclient"}}, {"model": "contenttypes.contenttype", "pk": 120, "fields": {"app_label": "oauth2_provider", "model": "application"}}, {"model": "contenttypes.contenttype", "pk": 121, "fields": {"app_label": "oauth2_provider", "model": "grant"}}, {"model": "contenttypes.contenttype", "pk": 122, "fields": {"app_label": "oauth2_provider", "model": "accesstoken"}}, {"model": "contenttypes.contenttype", "pk": 123, "fields": {"app_label": "oauth2_provider", "model": "refreshtoken"}}, {"model": "contenttypes.contenttype", "pk": 124, "fields": {"app_label": "oauth_dispatch", "model": "restrictedapplication"}}, {"model": "contenttypes.contenttype", "pk": 125, "fields": {"app_label": "third_party_auth", "model": "oauth2providerconfig"}}, {"model": "contenttypes.contenttype", "pk": 126, "fields": {"app_label": "third_party_auth", "model": "samlproviderconfig"}}, {"model": "contenttypes.contenttype", "pk": 127, "fields": {"app_label": "third_party_auth", "model": "samlconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 128, "fields": {"app_label": "third_party_auth", "model": "samlproviderdata"}}, {"model": "contenttypes.contenttype", "pk": 129, "fields": {"app_label": "third_party_auth", "model": "ltiproviderconfig"}}, {"model": "contenttypes.contenttype", "pk": 130, "fields": {"app_label": "third_party_auth", "model": "providerapipermissions"}}, {"model": "contenttypes.contenttype", "pk": 131, "fields": {"app_label": "oauth_provider", "model": "nonce"}}, {"model": "contenttypes.contenttype", "pk": 132, "fields": {"app_label": "oauth_provider", "model": "scope"}}, {"model": "contenttypes.contenttype", "pk": 133, "fields": {"app_label": "oauth_provider", "model": "consumer"}}, {"model": "contenttypes.contenttype", "pk": 134, "fields": {"app_label": "oauth_provider", "model": "token"}}, {"model": "contenttypes.contenttype", "pk": 135, "fields": {"app_label": "oauth_provider", "model": "resource"}}, {"model": "contenttypes.contenttype", "pk": 136, "fields": {"app_label": "wiki", "model": "article"}}, {"model": "contenttypes.contenttype", "pk": 137, "fields": {"app_label": "wiki", "model": "articleforobject"}}, {"model": "contenttypes.contenttype", "pk": 138, "fields": {"app_label": "wiki", "model": "articlerevision"}}, {"model": "contenttypes.contenttype", "pk": 139, "fields": {"app_label": "wiki", "model": "articleplugin"}}, {"model": "contenttypes.contenttype", "pk": 140, "fields": {"app_label": "wiki", "model": "reusableplugin"}}, {"model": "contenttypes.contenttype", "pk": 141, "fields": {"app_label": "wiki", "model": "simpleplugin"}}, {"model": "contenttypes.contenttype", "pk": 142, "fields": {"app_label": "wiki", "model": "revisionplugin"}}, {"model": "contenttypes.contenttype", "pk": 143, "fields": {"app_label": "wiki", "model": "revisionpluginrevision"}}, {"model": "contenttypes.contenttype", "pk": 144, "fields": {"app_label": "wiki", "model": "urlpath"}}, {"model": "contenttypes.contenttype", "pk": 145, "fields": {"app_label": "django_notify", "model": "notificationtype"}}, {"model": "contenttypes.contenttype", "pk": 146, "fields": {"app_label": "django_notify", "model": "settings"}}, {"model": "contenttypes.contenttype", "pk": 147, "fields": {"app_label": "django_notify", "model": "subscription"}}, {"model": "contenttypes.contenttype", "pk": 148, "fields": {"app_label": "django_notify", "model": "notification"}}, {"model": "contenttypes.contenttype", "pk": 149, "fields": {"app_label": "admin", "model": "logentry"}}, {"model": "contenttypes.contenttype", "pk": 150, "fields": {"app_label": "django_comment_common", "model": "role"}}, {"model": "contenttypes.contenttype", "pk": 151, "fields": {"app_label": "django_comment_common", "model": "permission"}}, {"model": "contenttypes.contenttype", "pk": 152, "fields": {"app_label": "django_comment_common", "model": "forumsconfig"}}, {"model": "contenttypes.contenttype", "pk": 153, "fields": {"app_label": "django_comment_common", "model": "coursediscussionsettings"}}, {"model": "contenttypes.contenttype", "pk": 154, "fields": {"app_label": "notes", "model": "note"}}, {"model": "contenttypes.contenttype", "pk": 155, "fields": {"app_label": "splash", "model": "splashconfig"}}, {"model": "contenttypes.contenttype", "pk": 156, "fields": {"app_label": "user_api", "model": "userpreference"}}, {"model": "contenttypes.contenttype", "pk": 157, "fields": {"app_label": "user_api", "model": "usercoursetag"}}, {"model": "contenttypes.contenttype", "pk": 158, "fields": {"app_label": "user_api", "model": "userorgtag"}}, {"model": "contenttypes.contenttype", "pk": 159, "fields": {"app_label": "shoppingcart", "model": "order"}}, {"model": "contenttypes.contenttype", "pk": 160, "fields": {"app_label": "shoppingcart", "model": "orderitem"}}, {"model": "contenttypes.contenttype", "pk": 161, "fields": {"app_label": "shoppingcart", "model": "invoice"}}, {"model": "contenttypes.contenttype", "pk": 162, "fields": {"app_label": "shoppingcart", "model": "invoicetransaction"}}, {"model": "contenttypes.contenttype", "pk": 163, "fields": {"app_label": "shoppingcart", "model": "invoiceitem"}}, {"model": "contenttypes.contenttype", "pk": 164, "fields": {"app_label": "shoppingcart", "model": "courseregistrationcodeinvoiceitem"}}, {"model": "contenttypes.contenttype", "pk": 165, "fields": {"app_label": "shoppingcart", "model": "invoicehistory"}}, {"model": "contenttypes.contenttype", "pk": 166, "fields": {"app_label": "shoppingcart", "model": "courseregistrationcode"}}, {"model": "contenttypes.contenttype", "pk": 167, "fields": {"app_label": "shoppingcart", "model": "registrationcoderedemption"}}, {"model": "contenttypes.contenttype", "pk": 168, "fields": {"app_label": "shoppingcart", "model": "coupon"}}, {"model": "contenttypes.contenttype", "pk": 169, "fields": {"app_label": "shoppingcart", "model": "couponredemption"}}, {"model": "contenttypes.contenttype", "pk": 170, "fields": {"app_label": "shoppingcart", "model": "paidcourseregistration"}}, {"model": "contenttypes.contenttype", "pk": 171, "fields": {"app_label": "shoppingcart", "model": "courseregcodeitem"}}, {"model": "contenttypes.contenttype", "pk": 172, "fields": {"app_label": "shoppingcart", "model": "courseregcodeitemannotation"}}, {"model": "contenttypes.contenttype", "pk": 173, "fields": {"app_label": "shoppingcart", "model": "paidcourseregistrationannotation"}}, {"model": "contenttypes.contenttype", "pk": 174, "fields": {"app_label": "shoppingcart", "model": "certificateitem"}}, {"model": "contenttypes.contenttype", "pk": 175, "fields": {"app_label": "shoppingcart", "model": "donationconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 176, "fields": {"app_label": "shoppingcart", "model": "donation"}}, {"model": "contenttypes.contenttype", "pk": 177, "fields": {"app_label": "course_modes", "model": "coursemode"}}, {"model": "contenttypes.contenttype", "pk": 178, "fields": {"app_label": "course_modes", "model": "coursemodesarchive"}}, {"model": "contenttypes.contenttype", "pk": 179, "fields": {"app_label": "course_modes", "model": "coursemodeexpirationconfig"}}, {"model": "contenttypes.contenttype", "pk": 180, "fields": {"app_label": "entitlements", "model": "courseentitlement"}}, {"model": "contenttypes.contenttype", "pk": 181, "fields": {"app_label": "verify_student", "model": "softwaresecurephotoverification"}}, {"model": "contenttypes.contenttype", "pk": 182, "fields": {"app_label": "verify_student", "model": "verificationdeadline"}}, {"model": "contenttypes.contenttype", "pk": 183, "fields": {"app_label": "verify_student", "model": "verificationcheckpoint"}}, {"model": "contenttypes.contenttype", "pk": 184, "fields": {"app_label": "verify_student", "model": "verificationstatus"}}, {"model": "contenttypes.contenttype", "pk": 185, "fields": {"app_label": "verify_student", "model": "incoursereverificationconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 186, "fields": {"app_label": "verify_student", "model": "icrvstatusemailsconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 187, "fields": {"app_label": "verify_student", "model": "skippedreverification"}}, {"model": "contenttypes.contenttype", "pk": 188, "fields": {"app_label": "dark_lang", "model": "darklangconfig"}}, {"model": "contenttypes.contenttype", "pk": 189, "fields": {"app_label": "microsite_configuration", "model": "microsite"}}, {"model": "contenttypes.contenttype", "pk": 190, "fields": {"app_label": "microsite_configuration", "model": "micrositehistory"}}, {"model": "contenttypes.contenttype", "pk": 191, "fields": {"app_label": "microsite_configuration", "model": "micrositeorganizationmapping"}}, {"model": "contenttypes.contenttype", "pk": 192, "fields": {"app_label": "microsite_configuration", "model": "micrositetemplate"}}, {"model": "contenttypes.contenttype", "pk": 193, "fields": {"app_label": "rss_proxy", "model": "whitelistedrssurl"}}, {"model": "contenttypes.contenttype", "pk": 194, "fields": {"app_label": "embargo", "model": "embargoedcourse"}}, {"model": "contenttypes.contenttype", "pk": 195, "fields": {"app_label": "embargo", "model": "embargoedstate"}}, {"model": "contenttypes.contenttype", "pk": 196, "fields": {"app_label": "embargo", "model": "restrictedcourse"}}, {"model": "contenttypes.contenttype", "pk": 197, "fields": {"app_label": "embargo", "model": "country"}}, {"model": "contenttypes.contenttype", "pk": 198, "fields": {"app_label": "embargo", "model": "countryaccessrule"}}, {"model": "contenttypes.contenttype", "pk": 199, "fields": {"app_label": "embargo", "model": "courseaccessrulehistory"}}, {"model": "contenttypes.contenttype", "pk": 200, "fields": {"app_label": "embargo", "model": "ipfilter"}}, {"model": "contenttypes.contenttype", "pk": 201, "fields": {"app_label": "course_action_state", "model": "coursererunstate"}}, {"model": "contenttypes.contenttype", "pk": 202, "fields": {"app_label": "mobile_api", "model": "mobileapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 203, "fields": {"app_label": "mobile_api", "model": "appversionconfig"}}, {"model": "contenttypes.contenttype", "pk": 204, "fields": {"app_label": "mobile_api", "model": "ignoremobileavailableflagconfig"}}, {"model": "contenttypes.contenttype", "pk": 205, "fields": {"app_label": "social_django", "model": "usersocialauth"}}, {"model": "contenttypes.contenttype", "pk": 206, "fields": {"app_label": "social_django", "model": "nonce"}}, {"model": "contenttypes.contenttype", "pk": 207, "fields": {"app_label": "social_django", "model": "association"}}, {"model": "contenttypes.contenttype", "pk": 208, "fields": {"app_label": "social_django", "model": "code"}}, {"model": "contenttypes.contenttype", "pk": 209, "fields": {"app_label": "social_django", "model": "partial"}}, {"model": "contenttypes.contenttype", "pk": 210, "fields": {"app_label": "survey", "model": "surveyform"}}, {"model": "contenttypes.contenttype", "pk": 211, "fields": {"app_label": "survey", "model": "surveyanswer"}}, {"model": "contenttypes.contenttype", "pk": 212, "fields": {"app_label": "lms_xblock", "model": "xblockasidesconfig"}}, {"model": "contenttypes.contenttype", "pk": 213, "fields": {"app_label": "problem_builder", "model": "answer"}}, {"model": "contenttypes.contenttype", "pk": 214, "fields": {"app_label": "problem_builder", "model": "share"}}, {"model": "contenttypes.contenttype", "pk": 215, "fields": {"app_label": "submissions", "model": "studentitem"}}, {"model": "contenttypes.contenttype", "pk": 216, "fields": {"app_label": "submissions", "model": "submission"}}, {"model": "contenttypes.contenttype", "pk": 217, "fields": {"app_label": "submissions", "model": "score"}}, {"model": "contenttypes.contenttype", "pk": 218, "fields": {"app_label": "submissions", "model": "scoresummary"}}, {"model": "contenttypes.contenttype", "pk": 219, "fields": {"app_label": "submissions", "model": "scoreannotation"}}, {"model": "contenttypes.contenttype", "pk": 220, "fields": {"app_label": "assessment", "model": "rubric"}}, {"model": "contenttypes.contenttype", "pk": 221, "fields": {"app_label": "assessment", "model": "criterion"}}, {"model": "contenttypes.contenttype", "pk": 222, "fields": {"app_label": "assessment", "model": "criterionoption"}}, {"model": "contenttypes.contenttype", "pk": 223, "fields": {"app_label": "assessment", "model": "assessment"}}, {"model": "contenttypes.contenttype", "pk": 224, "fields": {"app_label": "assessment", "model": "assessmentpart"}}, {"model": "contenttypes.contenttype", "pk": 225, "fields": {"app_label": "assessment", "model": "assessmentfeedbackoption"}}, {"model": "contenttypes.contenttype", "pk": 226, "fields": {"app_label": "assessment", "model": "assessmentfeedback"}}, {"model": "contenttypes.contenttype", "pk": 227, "fields": {"app_label": "assessment", "model": "peerworkflow"}}, {"model": "contenttypes.contenttype", "pk": 228, "fields": {"app_label": "assessment", "model": "peerworkflowitem"}}, {"model": "contenttypes.contenttype", "pk": 229, "fields": {"app_label": "assessment", "model": "trainingexample"}}, {"model": "contenttypes.contenttype", "pk": 230, "fields": {"app_label": "assessment", "model": "studenttrainingworkflow"}}, {"model": "contenttypes.contenttype", "pk": 231, "fields": {"app_label": "assessment", "model": "studenttrainingworkflowitem"}}, {"model": "contenttypes.contenttype", "pk": 232, "fields": {"app_label": "assessment", "model": "staffworkflow"}}, {"model": "contenttypes.contenttype", "pk": 233, "fields": {"app_label": "workflow", "model": "assessmentworkflow"}}, {"model": "contenttypes.contenttype", "pk": 234, "fields": {"app_label": "workflow", "model": "assessmentworkflowstep"}}, {"model": "contenttypes.contenttype", "pk": 235, "fields": {"app_label": "workflow", "model": "assessmentworkflowcancellation"}}, {"model": "contenttypes.contenttype", "pk": 236, "fields": {"app_label": "edxval", "model": "profile"}}, {"model": "contenttypes.contenttype", "pk": 237, "fields": {"app_label": "edxval", "model": "video"}}, {"model": "contenttypes.contenttype", "pk": 238, "fields": {"app_label": "edxval", "model": "coursevideo"}}, {"model": "contenttypes.contenttype", "pk": 239, "fields": {"app_label": "edxval", "model": "encodedvideo"}}, {"model": "contenttypes.contenttype", "pk": 240, "fields": {"app_label": "edxval", "model": "videoimage"}}, {"model": "contenttypes.contenttype", "pk": 241, "fields": {"app_label": "edxval", "model": "videotranscript"}}, {"model": "contenttypes.contenttype", "pk": 242, "fields": {"app_label": "edxval", "model": "transcriptpreference"}}, {"model": "contenttypes.contenttype", "pk": 243, "fields": {"app_label": "edxval", "model": "thirdpartytranscriptcredentialsstate"}}, {"model": "contenttypes.contenttype", "pk": 244, "fields": {"app_label": "course_overviews", "model": "courseoverview"}}, {"model": "contenttypes.contenttype", "pk": 245, "fields": {"app_label": "course_overviews", "model": "courseoverviewtab"}}, {"model": "contenttypes.contenttype", "pk": 246, "fields": {"app_label": "course_overviews", "model": "courseoverviewimageset"}}, {"model": "contenttypes.contenttype", "pk": 247, "fields": {"app_label": "course_overviews", "model": "courseoverviewimageconfig"}}, {"model": "contenttypes.contenttype", "pk": 248, "fields": {"app_label": "course_structures", "model": "coursestructure"}}, {"model": "contenttypes.contenttype", "pk": 249, "fields": {"app_label": "block_structure", "model": "blockstructureconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 250, "fields": {"app_label": "block_structure", "model": "blockstructuremodel"}}, {"model": "contenttypes.contenttype", "pk": 251, "fields": {"app_label": "cors_csrf", "model": "xdomainproxyconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 252, "fields": {"app_label": "commerce", "model": "commerceconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 253, "fields": {"app_label": "credit", "model": "creditprovider"}}, {"model": "contenttypes.contenttype", "pk": 254, "fields": {"app_label": "credit", "model": "creditcourse"}}, {"model": "contenttypes.contenttype", "pk": 255, "fields": {"app_label": "credit", "model": "creditrequirement"}}, {"model": "contenttypes.contenttype", "pk": 256, "fields": {"app_label": "credit", "model": "creditrequirementstatus"}}, {"model": "contenttypes.contenttype", "pk": 257, "fields": {"app_label": "credit", "model": "crediteligibility"}}, {"model": "contenttypes.contenttype", "pk": 258, "fields": {"app_label": "credit", "model": "creditrequest"}}, {"model": "contenttypes.contenttype", "pk": 259, "fields": {"app_label": "credit", "model": "creditconfig"}}, {"model": "contenttypes.contenttype", "pk": 260, "fields": {"app_label": "teams", "model": "courseteam"}}, {"model": "contenttypes.contenttype", "pk": 261, "fields": {"app_label": "teams", "model": "courseteammembership"}}, {"model": "contenttypes.contenttype", "pk": 262, "fields": {"app_label": "xblock_django", "model": "xblockconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 263, "fields": {"app_label": "xblock_django", "model": "xblockstudioconfigurationflag"}}, {"model": "contenttypes.contenttype", "pk": 264, "fields": {"app_label": "xblock_django", "model": "xblockstudioconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 265, "fields": {"app_label": "programs", "model": "programsapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 266, "fields": {"app_label": "catalog", "model": "catalogintegration"}}, {"model": "contenttypes.contenttype", "pk": 267, "fields": {"app_label": "self_paced", "model": "selfpacedconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 268, "fields": {"app_label": "thumbnail", "model": "kvstore"}}, {"model": "contenttypes.contenttype", "pk": 269, "fields": {"app_label": "credentials", "model": "credentialsapiconfig"}}, {"model": "contenttypes.contenttype", "pk": 270, "fields": {"app_label": "milestones", "model": "milestone"}}, {"model": "contenttypes.contenttype", "pk": 271, "fields": {"app_label": "milestones", "model": "milestonerelationshiptype"}}, {"model": "contenttypes.contenttype", "pk": 272, "fields": {"app_label": "milestones", "model": "coursemilestone"}}, {"model": "contenttypes.contenttype", "pk": 273, "fields": {"app_label": "milestones", "model": "coursecontentmilestone"}}, {"model": "contenttypes.contenttype", "pk": 274, "fields": {"app_label": "milestones", "model": "usermilestone"}}, {"model": "contenttypes.contenttype", "pk": 275, "fields": {"app_label": "api_admin", "model": "apiaccessconfig"}}, {"model": "contenttypes.contenttype", "pk": 276, "fields": {"app_label": "api_admin", "model": "catalog"}}, {"model": "contenttypes.contenttype", "pk": 277, "fields": {"app_label": "verified_track_content", "model": "verifiedtrackcohortedcourse"}}, {"model": "contenttypes.contenttype", "pk": 278, "fields": {"app_label": "verified_track_content", "model": "migrateverifiedtrackcohortssetting"}}, {"model": "contenttypes.contenttype", "pk": 279, "fields": {"app_label": "badges", "model": "badgeclass"}}, {"model": "contenttypes.contenttype", "pk": 280, "fields": {"app_label": "badges", "model": "badgeassertion"}}, {"model": "contenttypes.contenttype", "pk": 281, "fields": {"app_label": "badges", "model": "coursecompleteimageconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 282, "fields": {"app_label": "badges", "model": "courseeventbadgesconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 283, "fields": {"app_label": "email_marketing", "model": "emailmarketingconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 284, "fields": {"app_label": "celery_utils", "model": "failedtask"}}, {"model": "contenttypes.contenttype", "pk": 285, "fields": {"app_label": "celery_utils", "model": "chorddata"}}, {"model": "contenttypes.contenttype", "pk": 286, "fields": {"app_label": "crawlers", "model": "crawlersconfig"}}, {"model": "contenttypes.contenttype", "pk": 287, "fields": {"app_label": "waffle_utils", "model": "waffleflagcourseoverridemodel"}}, {"model": "contenttypes.contenttype", "pk": 288, "fields": {"app_label": "schedules", "model": "schedule"}}, {"model": "contenttypes.contenttype", "pk": 289, "fields": {"app_label": "schedules", "model": "scheduleconfig"}}, {"model": "contenttypes.contenttype", "pk": 290, "fields": {"app_label": "schedules", "model": "scheduleexperience"}}, {"model": "contenttypes.contenttype", "pk": 291, "fields": {"app_label": "course_goals", "model": "coursegoal"}}, {"model": "contenttypes.contenttype", "pk": 292, "fields": {"app_label": "completion", "model": "blockcompletion"}}, {"model": "contenttypes.contenttype", "pk": 293, "fields": {"app_label": "experiments", "model": "experimentdata"}}, {"model": "contenttypes.contenttype", "pk": 294, "fields": {"app_label": "experiments", "model": "experimentkeyvalue"}}, {"model": "contenttypes.contenttype", "pk": 295, "fields": {"app_label": "edx_proctoring", "model": "proctoredexam"}}, {"model": "contenttypes.contenttype", "pk": 296, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamreviewpolicy"}}, {"model": "contenttypes.contenttype", "pk": 297, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamreviewpolicyhistory"}}, {"model": "contenttypes.contenttype", "pk": 298, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentattempt"}}, {"model": "contenttypes.contenttype", "pk": 299, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentattempthistory"}}, {"model": "contenttypes.contenttype", "pk": 300, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentallowance"}}, {"model": "contenttypes.contenttype", "pk": 301, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamstudentallowancehistory"}}, {"model": "contenttypes.contenttype", "pk": 302, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamsoftwaresecurereview"}}, {"model": "contenttypes.contenttype", "pk": 303, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamsoftwaresecurereviewhistory"}}, {"model": "contenttypes.contenttype", "pk": 304, "fields": {"app_label": "edx_proctoring", "model": "proctoredexamsoftwaresecurecomment"}}, {"model": "contenttypes.contenttype", "pk": 305, "fields": {"app_label": "organizations", "model": "organization"}}, {"model": "contenttypes.contenttype", "pk": 306, "fields": {"app_label": "organizations", "model": "organizationcourse"}}, {"model": "contenttypes.contenttype", "pk": 307, "fields": {"app_label": "enterprise", "model": "historicalenterprisecustomer"}}, {"model": "contenttypes.contenttype", "pk": 308, "fields": {"app_label": "enterprise", "model": "enterprisecustomer"}}, {"model": "contenttypes.contenttype", "pk": 309, "fields": {"app_label": "enterprise", "model": "enterprisecustomeruser"}}, {"model": "contenttypes.contenttype", "pk": 310, "fields": {"app_label": "enterprise", "model": "pendingenterprisecustomeruser"}}, {"model": "contenttypes.contenttype", "pk": 311, "fields": {"app_label": "enterprise", "model": "pendingenrollment"}}, {"model": "contenttypes.contenttype", "pk": 312, "fields": {"app_label": "enterprise", "model": "enterprisecustomerbrandingconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 313, "fields": {"app_label": "enterprise", "model": "enterprisecustomeridentityprovider"}}, {"model": "contenttypes.contenttype", "pk": 314, "fields": {"app_label": "enterprise", "model": "historicalenterprisecustomerentitlement"}}, {"model": "contenttypes.contenttype", "pk": 315, "fields": {"app_label": "enterprise", "model": "enterprisecustomerentitlement"}}, {"model": "contenttypes.contenttype", "pk": 316, "fields": {"app_label": "enterprise", "model": "historicalenterprisecourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 317, "fields": {"app_label": "enterprise", "model": "enterprisecourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 318, "fields": {"app_label": "enterprise", "model": "historicalenterprisecustomercatalog"}}, {"model": "contenttypes.contenttype", "pk": 319, "fields": {"app_label": "enterprise", "model": "enterprisecustomercatalog"}}, {"model": "contenttypes.contenttype", "pk": 320, "fields": {"app_label": "enterprise", "model": "historicalenrollmentnotificationemailtemplate"}}, {"model": "contenttypes.contenttype", "pk": 321, "fields": {"app_label": "enterprise", "model": "enrollmentnotificationemailtemplate"}}, {"model": "contenttypes.contenttype", "pk": 322, "fields": {"app_label": "enterprise", "model": "enterprisecustomerreportingconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 323, "fields": {"app_label": "consent", "model": "historicaldatasharingconsent"}}, {"model": "contenttypes.contenttype", "pk": 324, "fields": {"app_label": "consent", "model": "datasharingconsent"}}, {"model": "contenttypes.contenttype", "pk": 325, "fields": {"app_label": "integrated_channel", "model": "learnerdatatransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 326, "fields": {"app_label": "integrated_channel", "model": "catalogtransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 327, "fields": {"app_label": "degreed", "model": "degreedglobalconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 328, "fields": {"app_label": "degreed", "model": "historicaldegreedenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 329, "fields": {"app_label": "degreed", "model": "degreedenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 330, "fields": {"app_label": "degreed", "model": "degreedlearnerdatatransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 331, "fields": {"app_label": "sap_success_factors", "model": "sapsuccessfactorsglobalconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 332, "fields": {"app_label": "sap_success_factors", "model": "historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 333, "fields": {"app_label": "sap_success_factors", "model": "sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 334, "fields": {"app_label": "sap_success_factors", "model": "sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "contenttypes.contenttype", "pk": 335, "fields": {"app_label": "ccx", "model": "customcourseforedx"}}, {"model": "contenttypes.contenttype", "pk": 336, "fields": {"app_label": "ccx", "model": "ccxfieldoverride"}}, {"model": "contenttypes.contenttype", "pk": 337, "fields": {"app_label": "ccxcon", "model": "ccxcon"}}, {"model": "contenttypes.contenttype", "pk": 338, "fields": {"app_label": "coursewarehistoryextended", "model": "studentmodulehistoryextended"}}, {"model": "contenttypes.contenttype", "pk": 339, "fields": {"app_label": "contentstore", "model": "videouploadconfig"}}, {"model": "contenttypes.contenttype", "pk": 340, "fields": {"app_label": "contentstore", "model": "pushnotificationconfig"}}, {"model": "contenttypes.contenttype", "pk": 341, "fields": {"app_label": "contentstore", "model": "newassetspageflag"}}, {"model": "contenttypes.contenttype", "pk": 342, "fields": {"app_label": "contentstore", "model": "coursenewassetspageflag"}}, {"model": "contenttypes.contenttype", "pk": 343, "fields": {"app_label": "course_creators", "model": "coursecreator"}}, {"model": "contenttypes.contenttype", "pk": 344, "fields": {"app_label": "xblock_config", "model": "studioconfig"}}, {"model": "contenttypes.contenttype", "pk": 345, "fields": {"app_label": "xblock_config", "model": "courseeditltifieldsenabledflag"}}, {"model": "contenttypes.contenttype", "pk": 346, "fields": {"app_label": "tagging", "model": "tagcategories"}}, {"model": "contenttypes.contenttype", "pk": 347, "fields": {"app_label": "tagging", "model": "tagavailablevalues"}}, {"model": "contenttypes.contenttype", "pk": 348, "fields": {"app_label": "user_tasks", "model": "usertaskstatus"}}, {"model": "contenttypes.contenttype", "pk": 349, "fields": {"app_label": "user_tasks", "model": "usertaskartifact"}}, {"model": "contenttypes.contenttype", "pk": 350, "fields": {"app_label": "entitlements", "model": "courseentitlementpolicy"}}, {"model": "contenttypes.contenttype", "pk": 351, "fields": {"app_label": "entitlements", "model": "courseentitlementsupportdetail"}}, {"model": "contenttypes.contenttype", "pk": 352, "fields": {"app_label": "integrated_channel", "model": "contentmetadataitemtransmission"}}, {"model": "contenttypes.contenttype", "pk": 353, "fields": {"app_label": "video_config", "model": "transcriptmigrationsetting"}}, {"model": "contenttypes.contenttype", "pk": 354, "fields": {"app_label": "verify_student", "model": "ssoverification"}}, {"model": "contenttypes.contenttype", "pk": 355, "fields": {"app_label": "user_api", "model": "userretirementstatus"}}, {"model": "contenttypes.contenttype", "pk": 356, "fields": {"app_label": "user_api", "model": "retirementstate"}}, {"model": "contenttypes.contenttype", "pk": 357, "fields": {"app_label": "consent", "model": "datasharingconsenttextoverrides"}}, {"model": "contenttypes.contenttype", "pk": 358, "fields": {"app_label": "user_api", "model": "userretirementrequest"}}, {"model": "contenttypes.contenttype", "pk": 359, "fields": {"app_label": "django_comment_common", "model": "discussionsidmapping"}}, {"model": "contenttypes.contenttype", "pk": 360, "fields": {"app_label": "oauth_dispatch", "model": "scopedapplication"}}, {"model": "contenttypes.contenttype", "pk": 361, "fields": {"app_label": "oauth_dispatch", "model": "scopedapplicationorganization"}}, {"model": "contenttypes.contenttype", "pk": 362, "fields": {"app_label": "user_api", "model": "userretirementpartnerreportingstatus"}}, {"model": "contenttypes.contenttype", "pk": 363, "fields": {"app_label": "verify_student", "model": "manualverification"}}, {"model": "contenttypes.contenttype", "pk": 364, "fields": {"app_label": "oauth_dispatch", "model": "applicationorganization"}}, {"model": "contenttypes.contenttype", "pk": 365, "fields": {"app_label": "oauth_dispatch", "model": "applicationaccess"}}, {"model": "contenttypes.contenttype", "pk": 366, "fields": {"app_label": "video_config", "model": "migrationenqueuedcourse"}}, {"model": "contenttypes.contenttype", "pk": 367, "fields": {"app_label": "xapi", "model": "xapilrsconfiguration"}}, {"model": "contenttypes.contenttype", "pk": 368, "fields": {"app_label": "credentials", "model": "notifycredentialsconfig"}}, {"model": "contenttypes.contenttype", "pk": 369, "fields": {"app_label": "video_config", "model": "updatedcoursevideos"}}, {"model": "contenttypes.contenttype", "pk": 370, "fields": {"app_label": "video_config", "model": "videothumbnailsetting"}}, {"model": "contenttypes.contenttype", "pk": 371, "fields": {"app_label": "course_duration_limits", "model": "coursedurationlimitconfig"}}, {"model": "contenttypes.contenttype", "pk": 372, "fields": {"app_label": "content_type_gating", "model": "contenttypegatingconfig"}}, {"model": "contenttypes.contenttype", "pk": 373, "fields": {"app_label": "grades", "model": "persistentsubsectiongradeoverridehistory"}}, {"model": "contenttypes.contenttype", "pk": 374, "fields": {"app_label": "student", "model": "accountrecovery"}}, {"model": "contenttypes.contenttype", "pk": 375, "fields": {"app_label": "enterprise", "model": "enterprisecustomertype"}}, {"model": "contenttypes.contenttype", "pk": 376, "fields": {"app_label": "student", "model": "pendingsecondaryemailchange"}}, {"model": "contenttypes.contenttype", "pk": 377, "fields": {"app_label": "lti_provider", "model": "lticonsumer"}}, {"model": "contenttypes.contenttype", "pk": 378, "fields": {"app_label": "lti_provider", "model": "gradedassignment"}}, {"model": "contenttypes.contenttype", "pk": 379, "fields": {"app_label": "lti_provider", "model": "ltiuser"}}, {"model": "contenttypes.contenttype", "pk": 380, "fields": {"app_label": "lti_provider", "model": "outcomeservice"}}, {"model": "contenttypes.contenttype", "pk": 381, "fields": {"app_label": "enterprise", "model": "systemwideenterpriserole"}}, {"model": "contenttypes.contenttype", "pk": 382, "fields": {"app_label": "enterprise", "model": "systemwideenterpriseuserroleassignment"}}, {"model": "contenttypes.contenttype", "pk": 383, "fields": {"app_label": "announcements", "model": "announcement"}}, {"model": "contenttypes.contenttype", "pk": 753, "fields": {"app_label": "enterprise", "model": "enterprisefeatureuserroleassignment"}}, {"model": "contenttypes.contenttype", "pk": 754, "fields": {"app_label": "enterprise", "model": "enterprisefeaturerole"}}, {"model": "contenttypes.contenttype", "pk": 755, "fields": {"app_label": "program_enrollments", "model": "programenrollment"}}, {"model": "contenttypes.contenttype", "pk": 756, "fields": {"app_label": "program_enrollments", "model": "historicalprogramenrollment"}}, {"model": "contenttypes.contenttype", "pk": 757, "fields": {"app_label": "program_enrollments", "model": "programcourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 758, "fields": {"app_label": "program_enrollments", "model": "historicalprogramcourseenrollment"}}, {"model": "contenttypes.contenttype", "pk": 759, "fields": {"app_label": "edx_when", "model": "contentdate"}}, {"model": "contenttypes.contenttype", "pk": 760, "fields": {"app_label": "edx_when", "model": "userdate"}}, {"model": "contenttypes.contenttype", "pk": 761, "fields": {"app_label": "edx_when", "model": "datepolicy"}}, {"model": "sites.site", "pk": 1, "fields": {"domain": "example.com", "name": "example.com"}}, {"model": "waffle.switch", "pk": 2, "fields": {"name": "enterprise_role_based_access_control", "active": false, "note": "", "created": "2019-04-08T20:44:56.819Z", "modified": "2019-04-08T20:44:56.819Z"}}, {"model": "bulk_email.courseemailtemplate", "pk": 1, "fields": {"html_template": " Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
", "plain_template": "{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n", "name": null}}, {"model": "bulk_email.courseemailtemplate", "pk": 2, "fields": {"html_template": " THIS IS A BRANDED HTML TEMPLATE Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
", "plain_template": "THIS IS A BRANDED TEXT TEMPLATE. {course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your course email settings at {email_settings_url}.\r\n", "name": "branded.template"}}, {"model": "embargo.country", "pk": 1, "fields": {"country": "AF"}}, {"model": "embargo.country", "pk": 2, "fields": {"country": "AX"}}, {"model": "embargo.country", "pk": 3, "fields": {"country": "AL"}}, {"model": "embargo.country", "pk": 4, "fields": {"country": "DZ"}}, {"model": "embargo.country", "pk": 5, "fields": {"country": "AS"}}, {"model": "embargo.country", "pk": 6, "fields": {"country": "AD"}}, {"model": "embargo.country", "pk": 7, "fields": {"country": "AO"}}, {"model": "embargo.country", "pk": 8, "fields": {"country": "AI"}}, {"model": "embargo.country", "pk": 9, "fields": {"country": "AQ"}}, {"model": "embargo.country", "pk": 10, "fields": {"country": "AG"}}, {"model": "embargo.country", "pk": 11, "fields": {"country": "AR"}}, {"model": "embargo.country", "pk": 12, "fields": {"country": "AM"}}, {"model": "embargo.country", "pk": 13, "fields": {"country": "AW"}}, {"model": "embargo.country", "pk": 14, "fields": {"country": "AU"}}, {"model": "embargo.country", "pk": 15, "fields": {"country": "AT"}}, {"model": "embargo.country", "pk": 16, "fields": {"country": "AZ"}}, {"model": "embargo.country", "pk": 17, "fields": {"country": "BS"}}, {"model": "embargo.country", "pk": 18, "fields": {"country": "BH"}}, {"model": "embargo.country", "pk": 19, "fields": {"country": "BD"}}, {"model": "embargo.country", "pk": 20, "fields": {"country": "BB"}}, {"model": "embargo.country", "pk": 21, "fields": {"country": "BY"}}, {"model": "embargo.country", "pk": 22, "fields": {"country": "BE"}}, {"model": "embargo.country", "pk": 23, "fields": {"country": "BZ"}}, {"model": "embargo.country", "pk": 24, "fields": {"country": "BJ"}}, {"model": "embargo.country", "pk": 25, "fields": {"country": "BM"}}, {"model": "embargo.country", "pk": 26, "fields": {"country": "BT"}}, {"model": "embargo.country", "pk": 27, "fields": {"country": "BO"}}, {"model": "embargo.country", "pk": 28, "fields": {"country": "BQ"}}, {"model": "embargo.country", "pk": 29, "fields": {"country": "BA"}}, {"model": "embargo.country", "pk": 30, "fields": {"country": "BW"}}, {"model": "embargo.country", "pk": 31, "fields": {"country": "BV"}}, {"model": "embargo.country", "pk": 32, "fields": {"country": "BR"}}, {"model": "embargo.country", "pk": 33, "fields": {"country": "IO"}}, {"model": "embargo.country", "pk": 34, "fields": {"country": "BN"}}, {"model": "embargo.country", "pk": 35, "fields": {"country": "BG"}}, {"model": "embargo.country", "pk": 36, "fields": {"country": "BF"}}, {"model": "embargo.country", "pk": 37, "fields": {"country": "BI"}}, {"model": "embargo.country", "pk": 38, "fields": {"country": "CV"}}, {"model": "embargo.country", "pk": 39, "fields": {"country": "KH"}}, {"model": "embargo.country", "pk": 40, "fields": {"country": "CM"}}, {"model": "embargo.country", "pk": 41, "fields": {"country": "CA"}}, {"model": "embargo.country", "pk": 42, "fields": {"country": "KY"}}, {"model": "embargo.country", "pk": 43, "fields": {"country": "CF"}}, {"model": "embargo.country", "pk": 44, "fields": {"country": "TD"}}, {"model": "embargo.country", "pk": 45, "fields": {"country": "CL"}}, {"model": "embargo.country", "pk": 46, "fields": {"country": "CN"}}, {"model": "embargo.country", "pk": 47, "fields": {"country": "CX"}}, {"model": "embargo.country", "pk": 48, "fields": {"country": "CC"}}, {"model": "embargo.country", "pk": 49, "fields": {"country": "CO"}}, {"model": "embargo.country", "pk": 50, "fields": {"country": "KM"}}, {"model": "embargo.country", "pk": 51, "fields": {"country": "CG"}}, {"model": "embargo.country", "pk": 52, "fields": {"country": "CD"}}, {"model": "embargo.country", "pk": 53, "fields": {"country": "CK"}}, {"model": "embargo.country", "pk": 54, "fields": {"country": "CR"}}, {"model": "embargo.country", "pk": 55, "fields": {"country": "CI"}}, {"model": "embargo.country", "pk": 56, "fields": {"country": "HR"}}, {"model": "embargo.country", "pk": 57, "fields": {"country": "CU"}}, {"model": "embargo.country", "pk": 58, "fields": {"country": "CW"}}, {"model": "embargo.country", "pk": 59, "fields": {"country": "CY"}}, {"model": "embargo.country", "pk": 60, "fields": {"country": "CZ"}}, {"model": "embargo.country", "pk": 61, "fields": {"country": "DK"}}, {"model": "embargo.country", "pk": 62, "fields": {"country": "DJ"}}, {"model": "embargo.country", "pk": 63, "fields": {"country": "DM"}}, {"model": "embargo.country", "pk": 64, "fields": {"country": "DO"}}, {"model": "embargo.country", "pk": 65, "fields": {"country": "EC"}}, {"model": "embargo.country", "pk": 66, "fields": {"country": "EG"}}, {"model": "embargo.country", "pk": 67, "fields": {"country": "SV"}}, {"model": "embargo.country", "pk": 68, "fields": {"country": "GQ"}}, {"model": "embargo.country", "pk": 69, "fields": {"country": "ER"}}, {"model": "embargo.country", "pk": 70, "fields": {"country": "EE"}}, {"model": "embargo.country", "pk": 71, "fields": {"country": "ET"}}, {"model": "embargo.country", "pk": 72, "fields": {"country": "FK"}}, {"model": "embargo.country", "pk": 73, "fields": {"country": "FO"}}, {"model": "embargo.country", "pk": 74, "fields": {"country": "FJ"}}, {"model": "embargo.country", "pk": 75, "fields": {"country": "FI"}}, {"model": "embargo.country", "pk": 76, "fields": {"country": "FR"}}, {"model": "embargo.country", "pk": 77, "fields": {"country": "GF"}}, {"model": "embargo.country", "pk": 78, "fields": {"country": "PF"}}, {"model": "embargo.country", "pk": 79, "fields": {"country": "TF"}}, {"model": "embargo.country", "pk": 80, "fields": {"country": "GA"}}, {"model": "embargo.country", "pk": 81, "fields": {"country": "GM"}}, {"model": "embargo.country", "pk": 82, "fields": {"country": "GE"}}, {"model": "embargo.country", "pk": 83, "fields": {"country": "DE"}}, {"model": "embargo.country", "pk": 84, "fields": {"country": "GH"}}, {"model": "embargo.country", "pk": 85, "fields": {"country": "GI"}}, {"model": "embargo.country", "pk": 86, "fields": {"country": "GR"}}, {"model": "embargo.country", "pk": 87, "fields": {"country": "GL"}}, {"model": "embargo.country", "pk": 88, "fields": {"country": "GD"}}, {"model": "embargo.country", "pk": 89, "fields": {"country": "GP"}}, {"model": "embargo.country", "pk": 90, "fields": {"country": "GU"}}, {"model": "embargo.country", "pk": 91, "fields": {"country": "GT"}}, {"model": "embargo.country", "pk": 92, "fields": {"country": "GG"}}, {"model": "embargo.country", "pk": 93, "fields": {"country": "GN"}}, {"model": "embargo.country", "pk": 94, "fields": {"country": "GW"}}, {"model": "embargo.country", "pk": 95, "fields": {"country": "GY"}}, {"model": "embargo.country", "pk": 96, "fields": {"country": "HT"}}, {"model": "embargo.country", "pk": 97, "fields": {"country": "HM"}}, {"model": "embargo.country", "pk": 98, "fields": {"country": "VA"}}, {"model": "embargo.country", "pk": 99, "fields": {"country": "HN"}}, {"model": "embargo.country", "pk": 100, "fields": {"country": "HK"}}, {"model": "embargo.country", "pk": 101, "fields": {"country": "HU"}}, {"model": "embargo.country", "pk": 102, "fields": {"country": "IS"}}, {"model": "embargo.country", "pk": 103, "fields": {"country": "IN"}}, {"model": "embargo.country", "pk": 104, "fields": {"country": "ID"}}, {"model": "embargo.country", "pk": 105, "fields": {"country": "IR"}}, {"model": "embargo.country", "pk": 106, "fields": {"country": "IQ"}}, {"model": "embargo.country", "pk": 107, "fields": {"country": "IE"}}, {"model": "embargo.country", "pk": 108, "fields": {"country": "IM"}}, {"model": "embargo.country", "pk": 109, "fields": {"country": "IL"}}, {"model": "embargo.country", "pk": 110, "fields": {"country": "IT"}}, {"model": "embargo.country", "pk": 111, "fields": {"country": "JM"}}, {"model": "embargo.country", "pk": 112, "fields": {"country": "JP"}}, {"model": "embargo.country", "pk": 113, "fields": {"country": "JE"}}, {"model": "embargo.country", "pk": 114, "fields": {"country": "JO"}}, {"model": "embargo.country", "pk": 115, "fields": {"country": "KZ"}}, {"model": "embargo.country", "pk": 116, "fields": {"country": "KE"}}, {"model": "embargo.country", "pk": 117, "fields": {"country": "KI"}}, {"model": "embargo.country", "pk": 118, "fields": {"country": "XK"}}, {"model": "embargo.country", "pk": 119, "fields": {"country": "KW"}}, {"model": "embargo.country", "pk": 120, "fields": {"country": "KG"}}, {"model": "embargo.country", "pk": 121, "fields": {"country": "LA"}}, {"model": "embargo.country", "pk": 122, "fields": {"country": "LV"}}, {"model": "embargo.country", "pk": 123, "fields": {"country": "LB"}}, {"model": "embargo.country", "pk": 124, "fields": {"country": "LS"}}, {"model": "embargo.country", "pk": 125, "fields": {"country": "LR"}}, {"model": "embargo.country", "pk": 126, "fields": {"country": "LY"}}, {"model": "embargo.country", "pk": 127, "fields": {"country": "LI"}}, {"model": "embargo.country", "pk": 128, "fields": {"country": "LT"}}, {"model": "embargo.country", "pk": 129, "fields": {"country": "LU"}}, {"model": "embargo.country", "pk": 130, "fields": {"country": "MO"}}, {"model": "embargo.country", "pk": 131, "fields": {"country": "MK"}}, {"model": "embargo.country", "pk": 132, "fields": {"country": "MG"}}, {"model": "embargo.country", "pk": 133, "fields": {"country": "MW"}}, {"model": "embargo.country", "pk": 134, "fields": {"country": "MY"}}, {"model": "embargo.country", "pk": 135, "fields": {"country": "MV"}}, {"model": "embargo.country", "pk": 136, "fields": {"country": "ML"}}, {"model": "embargo.country", "pk": 137, "fields": {"country": "MT"}}, {"model": "embargo.country", "pk": 138, "fields": {"country": "MH"}}, {"model": "embargo.country", "pk": 139, "fields": {"country": "MQ"}}, {"model": "embargo.country", "pk": 140, "fields": {"country": "MR"}}, {"model": "embargo.country", "pk": 141, "fields": {"country": "MU"}}, {"model": "embargo.country", "pk": 142, "fields": {"country": "YT"}}, {"model": "embargo.country", "pk": 143, "fields": {"country": "MX"}}, {"model": "embargo.country", "pk": 144, "fields": {"country": "FM"}}, {"model": "embargo.country", "pk": 145, "fields": {"country": "MD"}}, {"model": "embargo.country", "pk": 146, "fields": {"country": "MC"}}, {"model": "embargo.country", "pk": 147, "fields": {"country": "MN"}}, {"model": "embargo.country", "pk": 148, "fields": {"country": "ME"}}, {"model": "embargo.country", "pk": 149, "fields": {"country": "MS"}}, {"model": "embargo.country", "pk": 150, "fields": {"country": "MA"}}, {"model": "embargo.country", "pk": 151, "fields": {"country": "MZ"}}, {"model": "embargo.country", "pk": 152, "fields": {"country": "MM"}}, {"model": "embargo.country", "pk": 153, "fields": {"country": "NA"}}, {"model": "embargo.country", "pk": 154, "fields": {"country": "NR"}}, {"model": "embargo.country", "pk": 155, "fields": {"country": "NP"}}, {"model": "embargo.country", "pk": 156, "fields": {"country": "NL"}}, {"model": "embargo.country", "pk": 157, "fields": {"country": "NC"}}, {"model": "embargo.country", "pk": 158, "fields": {"country": "NZ"}}, {"model": "embargo.country", "pk": 159, "fields": {"country": "NI"}}, {"model": "embargo.country", "pk": 160, "fields": {"country": "NE"}}, {"model": "embargo.country", "pk": 161, "fields": {"country": "NG"}}, {"model": "embargo.country", "pk": 162, "fields": {"country": "NU"}}, {"model": "embargo.country", "pk": 163, "fields": {"country": "NF"}}, {"model": "embargo.country", "pk": 164, "fields": {"country": "KP"}}, {"model": "embargo.country", "pk": 165, "fields": {"country": "MP"}}, {"model": "embargo.country", "pk": 166, "fields": {"country": "NO"}}, {"model": "embargo.country", "pk": 167, "fields": {"country": "OM"}}, {"model": "embargo.country", "pk": 168, "fields": {"country": "PK"}}, {"model": "embargo.country", "pk": 169, "fields": {"country": "PW"}}, {"model": "embargo.country", "pk": 170, "fields": {"country": "PS"}}, {"model": "embargo.country", "pk": 171, "fields": {"country": "PA"}}, {"model": "embargo.country", "pk": 172, "fields": {"country": "PG"}}, {"model": "embargo.country", "pk": 173, "fields": {"country": "PY"}}, {"model": "embargo.country", "pk": 174, "fields": {"country": "PE"}}, {"model": "embargo.country", "pk": 175, "fields": {"country": "PH"}}, {"model": "embargo.country", "pk": 176, "fields": {"country": "PN"}}, {"model": "embargo.country", "pk": 177, "fields": {"country": "PL"}}, {"model": "embargo.country", "pk": 178, "fields": {"country": "PT"}}, {"model": "embargo.country", "pk": 179, "fields": {"country": "PR"}}, {"model": "embargo.country", "pk": 180, "fields": {"country": "QA"}}, {"model": "embargo.country", "pk": 181, "fields": {"country": "RE"}}, {"model": "embargo.country", "pk": 182, "fields": {"country": "RO"}}, {"model": "embargo.country", "pk": 183, "fields": {"country": "RU"}}, {"model": "embargo.country", "pk": 184, "fields": {"country": "RW"}}, {"model": "embargo.country", "pk": 185, "fields": {"country": "BL"}}, {"model": "embargo.country", "pk": 186, "fields": {"country": "SH"}}, {"model": "embargo.country", "pk": 187, "fields": {"country": "KN"}}, {"model": "embargo.country", "pk": 188, "fields": {"country": "LC"}}, {"model": "embargo.country", "pk": 189, "fields": {"country": "MF"}}, {"model": "embargo.country", "pk": 190, "fields": {"country": "PM"}}, {"model": "embargo.country", "pk": 191, "fields": {"country": "VC"}}, {"model": "embargo.country", "pk": 192, "fields": {"country": "WS"}}, {"model": "embargo.country", "pk": 193, "fields": {"country": "SM"}}, {"model": "embargo.country", "pk": 194, "fields": {"country": "ST"}}, {"model": "embargo.country", "pk": 195, "fields": {"country": "SA"}}, {"model": "embargo.country", "pk": 196, "fields": {"country": "SN"}}, {"model": "embargo.country", "pk": 197, "fields": {"country": "RS"}}, {"model": "embargo.country", "pk": 198, "fields": {"country": "SC"}}, {"model": "embargo.country", "pk": 199, "fields": {"country": "SL"}}, {"model": "embargo.country", "pk": 200, "fields": {"country": "SG"}}, {"model": "embargo.country", "pk": 201, "fields": {"country": "SX"}}, {"model": "embargo.country", "pk": 202, "fields": {"country": "SK"}}, {"model": "embargo.country", "pk": 203, "fields": {"country": "SI"}}, {"model": "embargo.country", "pk": 204, "fields": {"country": "SB"}}, {"model": "embargo.country", "pk": 205, "fields": {"country": "SO"}}, {"model": "embargo.country", "pk": 206, "fields": {"country": "ZA"}}, {"model": "embargo.country", "pk": 207, "fields": {"country": "GS"}}, {"model": "embargo.country", "pk": 208, "fields": {"country": "KR"}}, {"model": "embargo.country", "pk": 209, "fields": {"country": "SS"}}, {"model": "embargo.country", "pk": 210, "fields": {"country": "ES"}}, {"model": "embargo.country", "pk": 211, "fields": {"country": "LK"}}, {"model": "embargo.country", "pk": 212, "fields": {"country": "SD"}}, {"model": "embargo.country", "pk": 213, "fields": {"country": "SR"}}, {"model": "embargo.country", "pk": 214, "fields": {"country": "SJ"}}, {"model": "embargo.country", "pk": 215, "fields": {"country": "SZ"}}, {"model": "embargo.country", "pk": 216, "fields": {"country": "SE"}}, {"model": "embargo.country", "pk": 217, "fields": {"country": "CH"}}, {"model": "embargo.country", "pk": 218, "fields": {"country": "SY"}}, {"model": "embargo.country", "pk": 219, "fields": {"country": "TW"}}, {"model": "embargo.country", "pk": 220, "fields": {"country": "TJ"}}, {"model": "embargo.country", "pk": 221, "fields": {"country": "TZ"}}, {"model": "embargo.country", "pk": 222, "fields": {"country": "TH"}}, {"model": "embargo.country", "pk": 223, "fields": {"country": "TL"}}, {"model": "embargo.country", "pk": 224, "fields": {"country": "TG"}}, {"model": "embargo.country", "pk": 225, "fields": {"country": "TK"}}, {"model": "embargo.country", "pk": 226, "fields": {"country": "TO"}}, {"model": "embargo.country", "pk": 227, "fields": {"country": "TT"}}, {"model": "embargo.country", "pk": 228, "fields": {"country": "TN"}}, {"model": "embargo.country", "pk": 229, "fields": {"country": "TR"}}, {"model": "embargo.country", "pk": 230, "fields": {"country": "TM"}}, {"model": "embargo.country", "pk": 231, "fields": {"country": "TC"}}, {"model": "embargo.country", "pk": 232, "fields": {"country": "TV"}}, {"model": "embargo.country", "pk": 233, "fields": {"country": "UG"}}, {"model": "embargo.country", "pk": 234, "fields": {"country": "UA"}}, {"model": "embargo.country", "pk": 235, "fields": {"country": "AE"}}, {"model": "embargo.country", "pk": 236, "fields": {"country": "GB"}}, {"model": "embargo.country", "pk": 237, "fields": {"country": "UM"}}, {"model": "embargo.country", "pk": 238, "fields": {"country": "US"}}, {"model": "embargo.country", "pk": 239, "fields": {"country": "UY"}}, {"model": "embargo.country", "pk": 240, "fields": {"country": "UZ"}}, {"model": "embargo.country", "pk": 241, "fields": {"country": "VU"}}, {"model": "embargo.country", "pk": 242, "fields": {"country": "VE"}}, {"model": "embargo.country", "pk": 243, "fields": {"country": "VN"}}, {"model": "embargo.country", "pk": 244, "fields": {"country": "VG"}}, {"model": "embargo.country", "pk": 245, "fields": {"country": "VI"}}, {"model": "embargo.country", "pk": 246, "fields": {"country": "WF"}}, {"model": "embargo.country", "pk": 247, "fields": {"country": "EH"}}, {"model": "embargo.country", "pk": 248, "fields": {"country": "YE"}}, {"model": "embargo.country", "pk": 249, "fields": {"country": "ZM"}}, {"model": "embargo.country", "pk": 250, "fields": {"country": "ZW"}}, {"model": "edxval.profile", "pk": 1, "fields": {"profile_name": "desktop_mp4"}}, {"model": "edxval.profile", "pk": 2, "fields": {"profile_name": "desktop_webm"}}, {"model": "edxval.profile", "pk": 3, "fields": {"profile_name": "mobile_high"}}, {"model": "edxval.profile", "pk": 4, "fields": {"profile_name": "mobile_low"}}, {"model": "edxval.profile", "pk": 5, "fields": {"profile_name": "youtube"}}, {"model": "edxval.profile", "pk": 6, "fields": {"profile_name": "hls"}}, {"model": "edxval.profile", "pk": 7, "fields": {"profile_name": "audio_mp3"}}, {"model": "milestones.milestonerelationshiptype", "pk": 1, "fields": {"created": "2017-12-06T02:29:37.764Z", "modified": "2017-12-06T02:29:37.764Z", "name": "fulfills", "description": "Autogenerated milestone relationship type \"fulfills\"", "active": true}}, {"model": "milestones.milestonerelationshiptype", "pk": 2, "fields": {"created": "2017-12-06T02:29:37.767Z", "modified": "2017-12-06T02:29:37.767Z", "name": "requires", "description": "Autogenerated milestone relationship type \"requires\"", "active": true}}, {"model": "badges.coursecompleteimageconfiguration", "pk": 1, "fields": {"mode": "honor", "icon": "badges/honor_MYTwjzI.png", "default": false}}, {"model": "badges.coursecompleteimageconfiguration", "pk": 2, "fields": {"mode": "verified", "icon": "badges/verified_VzaI0PC.png", "default": false}}, {"model": "badges.coursecompleteimageconfiguration", "pk": 3, "fields": {"mode": "professional", "icon": "badges/professional_g7d5Aru.png", "default": false}}, {"model": "enterprise.enterprisecustomertype", "pk": 1, "fields": {"created": "2018-12-19T16:43:27.202Z", "modified": "2018-12-19T16:43:27.202Z", "name": "Enterprise"}}, {"model": "enterprise.systemwideenterpriserole", "pk": 1, "fields": {"created": "2019-03-08T15:47:17.791Z", "modified": "2019-03-08T15:47:17.792Z", "name": "enterprise_admin", "description": null}}, {"model": "enterprise.systemwideenterpriserole", "pk": 2, "fields": {"created": "2019-03-08T15:47:17.794Z", "modified": "2019-03-08T15:47:17.794Z", "name": "enterprise_learner", "description": null}}, {"model": "enterprise.systemwideenterpriserole", "pk": 3, "fields": {"created": "2019-03-28T19:29:40.175Z", "modified": "2019-03-28T19:29:40.175Z", "name": "enterprise_openedx_operator", "description": null}}, {"model": "enterprise.enterprisefeaturerole", "pk": 1, "fields": {"created": "2019-03-28T19:29:40.102Z", "modified": "2019-03-28T19:29:40.103Z", "name": "catalog_admin", "description": null}}, {"model": "enterprise.enterprisefeaturerole", "pk": 2, "fields": {"created": "2019-03-28T19:29:40.105Z", "modified": "2019-03-28T19:29:40.105Z", "name": "dashboard_admin", "description": null}}, {"model": "enterprise.enterprisefeaturerole", "pk": 3, "fields": {"created": "2019-03-28T19:29:40.108Z", "modified": "2019-03-28T19:29:40.108Z", "name": "enrollment_api_admin", "description": null}}, {"model": "auth.permission", "pk": 1, "fields": {"name": "Can add permission", "content_type": 2, "codename": "add_permission"}}, {"model": "auth.permission", "pk": 2, "fields": {"name": "Can change permission", "content_type": 2, "codename": "change_permission"}}, {"model": "auth.permission", "pk": 3, "fields": {"name": "Can delete permission", "content_type": 2, "codename": "delete_permission"}}, {"model": "auth.permission", "pk": 4, "fields": {"name": "Can add group", "content_type": 3, "codename": "add_group"}}, {"model": "auth.permission", "pk": 5, "fields": {"name": "Can change group", "content_type": 3, "codename": "change_group"}}, {"model": "auth.permission", "pk": 6, "fields": {"name": "Can delete group", "content_type": 3, "codename": "delete_group"}}, {"model": "auth.permission", "pk": 7, "fields": {"name": "Can add user", "content_type": 4, "codename": "add_user"}}, {"model": "auth.permission", "pk": 8, "fields": {"name": "Can change user", "content_type": 4, "codename": "change_user"}}, {"model": "auth.permission", "pk": 9, "fields": {"name": "Can delete user", "content_type": 4, "codename": "delete_user"}}, {"model": "auth.permission", "pk": 10, "fields": {"name": "Can add content type", "content_type": 5, "codename": "add_contenttype"}}, {"model": "auth.permission", "pk": 11, "fields": {"name": "Can change content type", "content_type": 5, "codename": "change_contenttype"}}, {"model": "auth.permission", "pk": 12, "fields": {"name": "Can delete content type", "content_type": 5, "codename": "delete_contenttype"}}, {"model": "auth.permission", "pk": 13, "fields": {"name": "Can add redirect", "content_type": 6, "codename": "add_redirect"}}, {"model": "auth.permission", "pk": 14, "fields": {"name": "Can change redirect", "content_type": 6, "codename": "change_redirect"}}, {"model": "auth.permission", "pk": 15, "fields": {"name": "Can delete redirect", "content_type": 6, "codename": "delete_redirect"}}, {"model": "auth.permission", "pk": 16, "fields": {"name": "Can add session", "content_type": 7, "codename": "add_session"}}, {"model": "auth.permission", "pk": 17, "fields": {"name": "Can change session", "content_type": 7, "codename": "change_session"}}, {"model": "auth.permission", "pk": 18, "fields": {"name": "Can delete session", "content_type": 7, "codename": "delete_session"}}, {"model": "auth.permission", "pk": 19, "fields": {"name": "Can add site", "content_type": 8, "codename": "add_site"}}, {"model": "auth.permission", "pk": 20, "fields": {"name": "Can change site", "content_type": 8, "codename": "change_site"}}, {"model": "auth.permission", "pk": 21, "fields": {"name": "Can delete site", "content_type": 8, "codename": "delete_site"}}, {"model": "auth.permission", "pk": 22, "fields": {"name": "Can add task state", "content_type": 9, "codename": "add_taskmeta"}}, {"model": "auth.permission", "pk": 23, "fields": {"name": "Can change task state", "content_type": 9, "codename": "change_taskmeta"}}, {"model": "auth.permission", "pk": 24, "fields": {"name": "Can delete task state", "content_type": 9, "codename": "delete_taskmeta"}}, {"model": "auth.permission", "pk": 25, "fields": {"name": "Can add saved group result", "content_type": 10, "codename": "add_tasksetmeta"}}, {"model": "auth.permission", "pk": 26, "fields": {"name": "Can change saved group result", "content_type": 10, "codename": "change_tasksetmeta"}}, {"model": "auth.permission", "pk": 27, "fields": {"name": "Can delete saved group result", "content_type": 10, "codename": "delete_tasksetmeta"}}, {"model": "auth.permission", "pk": 28, "fields": {"name": "Can add interval", "content_type": 11, "codename": "add_intervalschedule"}}, {"model": "auth.permission", "pk": 29, "fields": {"name": "Can change interval", "content_type": 11, "codename": "change_intervalschedule"}}, {"model": "auth.permission", "pk": 30, "fields": {"name": "Can delete interval", "content_type": 11, "codename": "delete_intervalschedule"}}, {"model": "auth.permission", "pk": 31, "fields": {"name": "Can add crontab", "content_type": 12, "codename": "add_crontabschedule"}}, {"model": "auth.permission", "pk": 32, "fields": {"name": "Can change crontab", "content_type": 12, "codename": "change_crontabschedule"}}, {"model": "auth.permission", "pk": 33, "fields": {"name": "Can delete crontab", "content_type": 12, "codename": "delete_crontabschedule"}}, {"model": "auth.permission", "pk": 34, "fields": {"name": "Can add periodic tasks", "content_type": 13, "codename": "add_periodictasks"}}, {"model": "auth.permission", "pk": 35, "fields": {"name": "Can change periodic tasks", "content_type": 13, "codename": "change_periodictasks"}}, {"model": "auth.permission", "pk": 36, "fields": {"name": "Can delete periodic tasks", "content_type": 13, "codename": "delete_periodictasks"}}, {"model": "auth.permission", "pk": 37, "fields": {"name": "Can add periodic task", "content_type": 14, "codename": "add_periodictask"}}, {"model": "auth.permission", "pk": 38, "fields": {"name": "Can change periodic task", "content_type": 14, "codename": "change_periodictask"}}, {"model": "auth.permission", "pk": 39, "fields": {"name": "Can delete periodic task", "content_type": 14, "codename": "delete_periodictask"}}, {"model": "auth.permission", "pk": 40, "fields": {"name": "Can add worker", "content_type": 15, "codename": "add_workerstate"}}, {"model": "auth.permission", "pk": 41, "fields": {"name": "Can change worker", "content_type": 15, "codename": "change_workerstate"}}, {"model": "auth.permission", "pk": 42, "fields": {"name": "Can delete worker", "content_type": 15, "codename": "delete_workerstate"}}, {"model": "auth.permission", "pk": 43, "fields": {"name": "Can add task", "content_type": 16, "codename": "add_taskstate"}}, {"model": "auth.permission", "pk": 44, "fields": {"name": "Can change task", "content_type": 16, "codename": "change_taskstate"}}, {"model": "auth.permission", "pk": 45, "fields": {"name": "Can delete task", "content_type": 16, "codename": "delete_taskstate"}}, {"model": "auth.permission", "pk": 46, "fields": {"name": "Can add flag", "content_type": 17, "codename": "add_flag"}}, {"model": "auth.permission", "pk": 47, "fields": {"name": "Can change flag", "content_type": 17, "codename": "change_flag"}}, {"model": "auth.permission", "pk": 48, "fields": {"name": "Can delete flag", "content_type": 17, "codename": "delete_flag"}}, {"model": "auth.permission", "pk": 49, "fields": {"name": "Can add switch", "content_type": 18, "codename": "add_switch"}}, {"model": "auth.permission", "pk": 50, "fields": {"name": "Can change switch", "content_type": 18, "codename": "change_switch"}}, {"model": "auth.permission", "pk": 51, "fields": {"name": "Can delete switch", "content_type": 18, "codename": "delete_switch"}}, {"model": "auth.permission", "pk": 52, "fields": {"name": "Can add sample", "content_type": 19, "codename": "add_sample"}}, {"model": "auth.permission", "pk": 53, "fields": {"name": "Can change sample", "content_type": 19, "codename": "change_sample"}}, {"model": "auth.permission", "pk": 54, "fields": {"name": "Can delete sample", "content_type": 19, "codename": "delete_sample"}}, {"model": "auth.permission", "pk": 55, "fields": {"name": "Can add global status message", "content_type": 20, "codename": "add_globalstatusmessage"}}, {"model": "auth.permission", "pk": 56, "fields": {"name": "Can change global status message", "content_type": 20, "codename": "change_globalstatusmessage"}}, {"model": "auth.permission", "pk": 57, "fields": {"name": "Can delete global status message", "content_type": 20, "codename": "delete_globalstatusmessage"}}, {"model": "auth.permission", "pk": 58, "fields": {"name": "Can add course message", "content_type": 21, "codename": "add_coursemessage"}}, {"model": "auth.permission", "pk": 59, "fields": {"name": "Can change course message", "content_type": 21, "codename": "change_coursemessage"}}, {"model": "auth.permission", "pk": 60, "fields": {"name": "Can delete course message", "content_type": 21, "codename": "delete_coursemessage"}}, {"model": "auth.permission", "pk": 61, "fields": {"name": "Can add asset base url config", "content_type": 22, "codename": "add_assetbaseurlconfig"}}, {"model": "auth.permission", "pk": 62, "fields": {"name": "Can change asset base url config", "content_type": 22, "codename": "change_assetbaseurlconfig"}}, {"model": "auth.permission", "pk": 63, "fields": {"name": "Can delete asset base url config", "content_type": 22, "codename": "delete_assetbaseurlconfig"}}, {"model": "auth.permission", "pk": 64, "fields": {"name": "Can add asset excluded extensions config", "content_type": 23, "codename": "add_assetexcludedextensionsconfig"}}, {"model": "auth.permission", "pk": 65, "fields": {"name": "Can change asset excluded extensions config", "content_type": 23, "codename": "change_assetexcludedextensionsconfig"}}, {"model": "auth.permission", "pk": 66, "fields": {"name": "Can delete asset excluded extensions config", "content_type": 23, "codename": "delete_assetexcludedextensionsconfig"}}, {"model": "auth.permission", "pk": 67, "fields": {"name": "Can add course asset cache ttl config", "content_type": 24, "codename": "add_courseassetcachettlconfig"}}, {"model": "auth.permission", "pk": 68, "fields": {"name": "Can change course asset cache ttl config", "content_type": 24, "codename": "change_courseassetcachettlconfig"}}, {"model": "auth.permission", "pk": 69, "fields": {"name": "Can delete course asset cache ttl config", "content_type": 24, "codename": "delete_courseassetcachettlconfig"}}, {"model": "auth.permission", "pk": 70, "fields": {"name": "Can add cdn user agents config", "content_type": 25, "codename": "add_cdnuseragentsconfig"}}, {"model": "auth.permission", "pk": 71, "fields": {"name": "Can change cdn user agents config", "content_type": 25, "codename": "change_cdnuseragentsconfig"}}, {"model": "auth.permission", "pk": 72, "fields": {"name": "Can delete cdn user agents config", "content_type": 25, "codename": "delete_cdnuseragentsconfig"}}, {"model": "auth.permission", "pk": 73, "fields": {"name": "Can add site theme", "content_type": 26, "codename": "add_sitetheme"}}, {"model": "auth.permission", "pk": 74, "fields": {"name": "Can change site theme", "content_type": 26, "codename": "change_sitetheme"}}, {"model": "auth.permission", "pk": 75, "fields": {"name": "Can delete site theme", "content_type": 26, "codename": "delete_sitetheme"}}, {"model": "auth.permission", "pk": 76, "fields": {"name": "Can add site configuration", "content_type": 27, "codename": "add_siteconfiguration"}}, {"model": "auth.permission", "pk": 77, "fields": {"name": "Can change site configuration", "content_type": 27, "codename": "change_siteconfiguration"}}, {"model": "auth.permission", "pk": 78, "fields": {"name": "Can delete site configuration", "content_type": 27, "codename": "delete_siteconfiguration"}}, {"model": "auth.permission", "pk": 79, "fields": {"name": "Can add site configuration history", "content_type": 28, "codename": "add_siteconfigurationhistory"}}, {"model": "auth.permission", "pk": 80, "fields": {"name": "Can change site configuration history", "content_type": 28, "codename": "change_siteconfigurationhistory"}}, {"model": "auth.permission", "pk": 81, "fields": {"name": "Can delete site configuration history", "content_type": 28, "codename": "delete_siteconfigurationhistory"}}, {"model": "auth.permission", "pk": 82, "fields": {"name": "Can add hls playback enabled flag", "content_type": 29, "codename": "add_hlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 83, "fields": {"name": "Can change hls playback enabled flag", "content_type": 29, "codename": "change_hlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 84, "fields": {"name": "Can delete hls playback enabled flag", "content_type": 29, "codename": "delete_hlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 85, "fields": {"name": "Can add course hls playback enabled flag", "content_type": 30, "codename": "add_coursehlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 86, "fields": {"name": "Can change course hls playback enabled flag", "content_type": 30, "codename": "change_coursehlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 87, "fields": {"name": "Can delete course hls playback enabled flag", "content_type": 30, "codename": "delete_coursehlsplaybackenabledflag"}}, {"model": "auth.permission", "pk": 88, "fields": {"name": "Can add video transcript enabled flag", "content_type": 31, "codename": "add_videotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 89, "fields": {"name": "Can change video transcript enabled flag", "content_type": 31, "codename": "change_videotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 90, "fields": {"name": "Can delete video transcript enabled flag", "content_type": 31, "codename": "delete_videotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 91, "fields": {"name": "Can add course video transcript enabled flag", "content_type": 32, "codename": "add_coursevideotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 92, "fields": {"name": "Can change course video transcript enabled flag", "content_type": 32, "codename": "change_coursevideotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 93, "fields": {"name": "Can delete course video transcript enabled flag", "content_type": 32, "codename": "delete_coursevideotranscriptenabledflag"}}, {"model": "auth.permission", "pk": 94, "fields": {"name": "Can add video pipeline integration", "content_type": 33, "codename": "add_videopipelineintegration"}}, {"model": "auth.permission", "pk": 95, "fields": {"name": "Can change video pipeline integration", "content_type": 33, "codename": "change_videopipelineintegration"}}, {"model": "auth.permission", "pk": 96, "fields": {"name": "Can delete video pipeline integration", "content_type": 33, "codename": "delete_videopipelineintegration"}}, {"model": "auth.permission", "pk": 97, "fields": {"name": "Can add video uploads enabled by default", "content_type": 34, "codename": "add_videouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 98, "fields": {"name": "Can change video uploads enabled by default", "content_type": 34, "codename": "change_videouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 99, "fields": {"name": "Can delete video uploads enabled by default", "content_type": 34, "codename": "delete_videouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 100, "fields": {"name": "Can add course video uploads enabled by default", "content_type": 35, "codename": "add_coursevideouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 101, "fields": {"name": "Can change course video uploads enabled by default", "content_type": 35, "codename": "change_coursevideouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 102, "fields": {"name": "Can delete course video uploads enabled by default", "content_type": 35, "codename": "delete_coursevideouploadsenabledbydefault"}}, {"model": "auth.permission", "pk": 103, "fields": {"name": "Can add bookmark", "content_type": 36, "codename": "add_bookmark"}}, {"model": "auth.permission", "pk": 104, "fields": {"name": "Can change bookmark", "content_type": 36, "codename": "change_bookmark"}}, {"model": "auth.permission", "pk": 105, "fields": {"name": "Can delete bookmark", "content_type": 36, "codename": "delete_bookmark"}}, {"model": "auth.permission", "pk": 106, "fields": {"name": "Can add x block cache", "content_type": 37, "codename": "add_xblockcache"}}, {"model": "auth.permission", "pk": 107, "fields": {"name": "Can change x block cache", "content_type": 37, "codename": "change_xblockcache"}}, {"model": "auth.permission", "pk": 108, "fields": {"name": "Can delete x block cache", "content_type": 37, "codename": "delete_xblockcache"}}, {"model": "auth.permission", "pk": 109, "fields": {"name": "Can add student module", "content_type": 38, "codename": "add_studentmodule"}}, {"model": "auth.permission", "pk": 110, "fields": {"name": "Can change student module", "content_type": 38, "codename": "change_studentmodule"}}, {"model": "auth.permission", "pk": 111, "fields": {"name": "Can delete student module", "content_type": 38, "codename": "delete_studentmodule"}}, {"model": "auth.permission", "pk": 112, "fields": {"name": "Can add student module history", "content_type": 39, "codename": "add_studentmodulehistory"}}, {"model": "auth.permission", "pk": 113, "fields": {"name": "Can change student module history", "content_type": 39, "codename": "change_studentmodulehistory"}}, {"model": "auth.permission", "pk": 114, "fields": {"name": "Can delete student module history", "content_type": 39, "codename": "delete_studentmodulehistory"}}, {"model": "auth.permission", "pk": 115, "fields": {"name": "Can add x module user state summary field", "content_type": 40, "codename": "add_xmoduleuserstatesummaryfield"}}, {"model": "auth.permission", "pk": 116, "fields": {"name": "Can change x module user state summary field", "content_type": 40, "codename": "change_xmoduleuserstatesummaryfield"}}, {"model": "auth.permission", "pk": 117, "fields": {"name": "Can delete x module user state summary field", "content_type": 40, "codename": "delete_xmoduleuserstatesummaryfield"}}, {"model": "auth.permission", "pk": 118, "fields": {"name": "Can add x module student prefs field", "content_type": 41, "codename": "add_xmodulestudentprefsfield"}}, {"model": "auth.permission", "pk": 119, "fields": {"name": "Can change x module student prefs field", "content_type": 41, "codename": "change_xmodulestudentprefsfield"}}, {"model": "auth.permission", "pk": 120, "fields": {"name": "Can delete x module student prefs field", "content_type": 41, "codename": "delete_xmodulestudentprefsfield"}}, {"model": "auth.permission", "pk": 121, "fields": {"name": "Can add x module student info field", "content_type": 42, "codename": "add_xmodulestudentinfofield"}}, {"model": "auth.permission", "pk": 122, "fields": {"name": "Can change x module student info field", "content_type": 42, "codename": "change_xmodulestudentinfofield"}}, {"model": "auth.permission", "pk": 123, "fields": {"name": "Can delete x module student info field", "content_type": 42, "codename": "delete_xmodulestudentinfofield"}}, {"model": "auth.permission", "pk": 124, "fields": {"name": "Can add offline computed grade", "content_type": 43, "codename": "add_offlinecomputedgrade"}}, {"model": "auth.permission", "pk": 125, "fields": {"name": "Can change offline computed grade", "content_type": 43, "codename": "change_offlinecomputedgrade"}}, {"model": "auth.permission", "pk": 126, "fields": {"name": "Can delete offline computed grade", "content_type": 43, "codename": "delete_offlinecomputedgrade"}}, {"model": "auth.permission", "pk": 127, "fields": {"name": "Can add offline computed grade log", "content_type": 44, "codename": "add_offlinecomputedgradelog"}}, {"model": "auth.permission", "pk": 128, "fields": {"name": "Can change offline computed grade log", "content_type": 44, "codename": "change_offlinecomputedgradelog"}}, {"model": "auth.permission", "pk": 129, "fields": {"name": "Can delete offline computed grade log", "content_type": 44, "codename": "delete_offlinecomputedgradelog"}}, {"model": "auth.permission", "pk": 130, "fields": {"name": "Can add student field override", "content_type": 45, "codename": "add_studentfieldoverride"}}, {"model": "auth.permission", "pk": 131, "fields": {"name": "Can change student field override", "content_type": 45, "codename": "change_studentfieldoverride"}}, {"model": "auth.permission", "pk": 132, "fields": {"name": "Can delete student field override", "content_type": 45, "codename": "delete_studentfieldoverride"}}, {"model": "auth.permission", "pk": 133, "fields": {"name": "Can add dynamic upgrade deadline configuration", "content_type": 46, "codename": "add_dynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 134, "fields": {"name": "Can change dynamic upgrade deadline configuration", "content_type": 46, "codename": "change_dynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 135, "fields": {"name": "Can delete dynamic upgrade deadline configuration", "content_type": 46, "codename": "delete_dynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 136, "fields": {"name": "Can add course dynamic upgrade deadline configuration", "content_type": 47, "codename": "add_coursedynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 137, "fields": {"name": "Can change course dynamic upgrade deadline configuration", "content_type": 47, "codename": "change_coursedynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 138, "fields": {"name": "Can delete course dynamic upgrade deadline configuration", "content_type": 47, "codename": "delete_coursedynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 139, "fields": {"name": "Can add org dynamic upgrade deadline configuration", "content_type": 48, "codename": "add_orgdynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 140, "fields": {"name": "Can change org dynamic upgrade deadline configuration", "content_type": 48, "codename": "change_orgdynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 141, "fields": {"name": "Can delete org dynamic upgrade deadline configuration", "content_type": 48, "codename": "delete_orgdynamicupgradedeadlineconfiguration"}}, {"model": "auth.permission", "pk": 142, "fields": {"name": "Can add anonymous user id", "content_type": 49, "codename": "add_anonymoususerid"}}, {"model": "auth.permission", "pk": 143, "fields": {"name": "Can change anonymous user id", "content_type": 49, "codename": "change_anonymoususerid"}}, {"model": "auth.permission", "pk": 144, "fields": {"name": "Can delete anonymous user id", "content_type": 49, "codename": "delete_anonymoususerid"}}, {"model": "auth.permission", "pk": 145, "fields": {"name": "Can add user standing", "content_type": 50, "codename": "add_userstanding"}}, {"model": "auth.permission", "pk": 146, "fields": {"name": "Can change user standing", "content_type": 50, "codename": "change_userstanding"}}, {"model": "auth.permission", "pk": 147, "fields": {"name": "Can delete user standing", "content_type": 50, "codename": "delete_userstanding"}}, {"model": "auth.permission", "pk": 148, "fields": {"name": "Can add user profile", "content_type": 51, "codename": "add_userprofile"}}, {"model": "auth.permission", "pk": 149, "fields": {"name": "Can change user profile", "content_type": 51, "codename": "change_userprofile"}}, {"model": "auth.permission", "pk": 150, "fields": {"name": "Can delete user profile", "content_type": 51, "codename": "delete_userprofile"}}, {"model": "auth.permission", "pk": 151, "fields": {"name": "Can deactivate, but NOT delete users", "content_type": 51, "codename": "can_deactivate_users"}}, {"model": "auth.permission", "pk": 152, "fields": {"name": "Can add user signup source", "content_type": 52, "codename": "add_usersignupsource"}}, {"model": "auth.permission", "pk": 153, "fields": {"name": "Can change user signup source", "content_type": 52, "codename": "change_usersignupsource"}}, {"model": "auth.permission", "pk": 154, "fields": {"name": "Can delete user signup source", "content_type": 52, "codename": "delete_usersignupsource"}}, {"model": "auth.permission", "pk": 155, "fields": {"name": "Can add user test group", "content_type": 53, "codename": "add_usertestgroup"}}, {"model": "auth.permission", "pk": 156, "fields": {"name": "Can change user test group", "content_type": 53, "codename": "change_usertestgroup"}}, {"model": "auth.permission", "pk": 157, "fields": {"name": "Can delete user test group", "content_type": 53, "codename": "delete_usertestgroup"}}, {"model": "auth.permission", "pk": 158, "fields": {"name": "Can add registration", "content_type": 54, "codename": "add_registration"}}, {"model": "auth.permission", "pk": 159, "fields": {"name": "Can change registration", "content_type": 54, "codename": "change_registration"}}, {"model": "auth.permission", "pk": 160, "fields": {"name": "Can delete registration", "content_type": 54, "codename": "delete_registration"}}, {"model": "auth.permission", "pk": 161, "fields": {"name": "Can add pending name change", "content_type": 55, "codename": "add_pendingnamechange"}}, {"model": "auth.permission", "pk": 162, "fields": {"name": "Can change pending name change", "content_type": 55, "codename": "change_pendingnamechange"}}, {"model": "auth.permission", "pk": 163, "fields": {"name": "Can delete pending name change", "content_type": 55, "codename": "delete_pendingnamechange"}}, {"model": "auth.permission", "pk": 164, "fields": {"name": "Can add pending email change", "content_type": 56, "codename": "add_pendingemailchange"}}, {"model": "auth.permission", "pk": 165, "fields": {"name": "Can change pending email change", "content_type": 56, "codename": "change_pendingemailchange"}}, {"model": "auth.permission", "pk": 166, "fields": {"name": "Can delete pending email change", "content_type": 56, "codename": "delete_pendingemailchange"}}, {"model": "auth.permission", "pk": 167, "fields": {"name": "Can add password history", "content_type": 57, "codename": "add_passwordhistory"}}, {"model": "auth.permission", "pk": 168, "fields": {"name": "Can change password history", "content_type": 57, "codename": "change_passwordhistory"}}, {"model": "auth.permission", "pk": 169, "fields": {"name": "Can delete password history", "content_type": 57, "codename": "delete_passwordhistory"}}, {"model": "auth.permission", "pk": 170, "fields": {"name": "Can add login failures", "content_type": 58, "codename": "add_loginfailures"}}, {"model": "auth.permission", "pk": 171, "fields": {"name": "Can change login failures", "content_type": 58, "codename": "change_loginfailures"}}, {"model": "auth.permission", "pk": 172, "fields": {"name": "Can delete login failures", "content_type": 58, "codename": "delete_loginfailures"}}, {"model": "auth.permission", "pk": 173, "fields": {"name": "Can add course enrollment", "content_type": 59, "codename": "add_courseenrollment"}}, {"model": "auth.permission", "pk": 174, "fields": {"name": "Can change course enrollment", "content_type": 59, "codename": "change_courseenrollment"}}, {"model": "auth.permission", "pk": 175, "fields": {"name": "Can delete course enrollment", "content_type": 59, "codename": "delete_courseenrollment"}}, {"model": "auth.permission", "pk": 176, "fields": {"name": "Can add manual enrollment audit", "content_type": 60, "codename": "add_manualenrollmentaudit"}}, {"model": "auth.permission", "pk": 177, "fields": {"name": "Can change manual enrollment audit", "content_type": 60, "codename": "change_manualenrollmentaudit"}}, {"model": "auth.permission", "pk": 178, "fields": {"name": "Can delete manual enrollment audit", "content_type": 60, "codename": "delete_manualenrollmentaudit"}}, {"model": "auth.permission", "pk": 179, "fields": {"name": "Can add course enrollment allowed", "content_type": 61, "codename": "add_courseenrollmentallowed"}}, {"model": "auth.permission", "pk": 180, "fields": {"name": "Can change course enrollment allowed", "content_type": 61, "codename": "change_courseenrollmentallowed"}}, {"model": "auth.permission", "pk": 181, "fields": {"name": "Can delete course enrollment allowed", "content_type": 61, "codename": "delete_courseenrollmentallowed"}}, {"model": "auth.permission", "pk": 182, "fields": {"name": "Can add course access role", "content_type": 62, "codename": "add_courseaccessrole"}}, {"model": "auth.permission", "pk": 183, "fields": {"name": "Can change course access role", "content_type": 62, "codename": "change_courseaccessrole"}}, {"model": "auth.permission", "pk": 184, "fields": {"name": "Can delete course access role", "content_type": 62, "codename": "delete_courseaccessrole"}}, {"model": "auth.permission", "pk": 185, "fields": {"name": "Can add dashboard configuration", "content_type": 63, "codename": "add_dashboardconfiguration"}}, {"model": "auth.permission", "pk": 186, "fields": {"name": "Can change dashboard configuration", "content_type": 63, "codename": "change_dashboardconfiguration"}}, {"model": "auth.permission", "pk": 187, "fields": {"name": "Can delete dashboard configuration", "content_type": 63, "codename": "delete_dashboardconfiguration"}}, {"model": "auth.permission", "pk": 188, "fields": {"name": "Can add linked in add to profile configuration", "content_type": 64, "codename": "add_linkedinaddtoprofileconfiguration"}}, {"model": "auth.permission", "pk": 189, "fields": {"name": "Can change linked in add to profile configuration", "content_type": 64, "codename": "change_linkedinaddtoprofileconfiguration"}}, {"model": "auth.permission", "pk": 190, "fields": {"name": "Can delete linked in add to profile configuration", "content_type": 64, "codename": "delete_linkedinaddtoprofileconfiguration"}}, {"model": "auth.permission", "pk": 191, "fields": {"name": "Can add entrance exam configuration", "content_type": 65, "codename": "add_entranceexamconfiguration"}}, {"model": "auth.permission", "pk": 192, "fields": {"name": "Can change entrance exam configuration", "content_type": 65, "codename": "change_entranceexamconfiguration"}}, {"model": "auth.permission", "pk": 193, "fields": {"name": "Can delete entrance exam configuration", "content_type": 65, "codename": "delete_entranceexamconfiguration"}}, {"model": "auth.permission", "pk": 194, "fields": {"name": "Can add language proficiency", "content_type": 66, "codename": "add_languageproficiency"}}, {"model": "auth.permission", "pk": 195, "fields": {"name": "Can change language proficiency", "content_type": 66, "codename": "change_languageproficiency"}}, {"model": "auth.permission", "pk": 196, "fields": {"name": "Can delete language proficiency", "content_type": 66, "codename": "delete_languageproficiency"}}, {"model": "auth.permission", "pk": 197, "fields": {"name": "Can add social link", "content_type": 67, "codename": "add_sociallink"}}, {"model": "auth.permission", "pk": 198, "fields": {"name": "Can change social link", "content_type": 67, "codename": "change_sociallink"}}, {"model": "auth.permission", "pk": 199, "fields": {"name": "Can delete social link", "content_type": 67, "codename": "delete_sociallink"}}, {"model": "auth.permission", "pk": 200, "fields": {"name": "Can add course enrollment attribute", "content_type": 68, "codename": "add_courseenrollmentattribute"}}, {"model": "auth.permission", "pk": 201, "fields": {"name": "Can change course enrollment attribute", "content_type": 68, "codename": "change_courseenrollmentattribute"}}, {"model": "auth.permission", "pk": 202, "fields": {"name": "Can delete course enrollment attribute", "content_type": 68, "codename": "delete_courseenrollmentattribute"}}, {"model": "auth.permission", "pk": 203, "fields": {"name": "Can add enrollment refund configuration", "content_type": 69, "codename": "add_enrollmentrefundconfiguration"}}, {"model": "auth.permission", "pk": 204, "fields": {"name": "Can change enrollment refund configuration", "content_type": 69, "codename": "change_enrollmentrefundconfiguration"}}, {"model": "auth.permission", "pk": 205, "fields": {"name": "Can delete enrollment refund configuration", "content_type": 69, "codename": "delete_enrollmentrefundconfiguration"}}, {"model": "auth.permission", "pk": 206, "fields": {"name": "Can add registration cookie configuration", "content_type": 70, "codename": "add_registrationcookieconfiguration"}}, {"model": "auth.permission", "pk": 207, "fields": {"name": "Can change registration cookie configuration", "content_type": 70, "codename": "change_registrationcookieconfiguration"}}, {"model": "auth.permission", "pk": 208, "fields": {"name": "Can delete registration cookie configuration", "content_type": 70, "codename": "delete_registrationcookieconfiguration"}}, {"model": "auth.permission", "pk": 209, "fields": {"name": "Can add user attribute", "content_type": 71, "codename": "add_userattribute"}}, {"model": "auth.permission", "pk": 210, "fields": {"name": "Can change user attribute", "content_type": 71, "codename": "change_userattribute"}}, {"model": "auth.permission", "pk": 211, "fields": {"name": "Can delete user attribute", "content_type": 71, "codename": "delete_userattribute"}}, {"model": "auth.permission", "pk": 212, "fields": {"name": "Can add logout view configuration", "content_type": 72, "codename": "add_logoutviewconfiguration"}}, {"model": "auth.permission", "pk": 213, "fields": {"name": "Can change logout view configuration", "content_type": 72, "codename": "change_logoutviewconfiguration"}}, {"model": "auth.permission", "pk": 214, "fields": {"name": "Can delete logout view configuration", "content_type": 72, "codename": "delete_logoutviewconfiguration"}}, {"model": "auth.permission", "pk": 215, "fields": {"name": "Can add tracking log", "content_type": 73, "codename": "add_trackinglog"}}, {"model": "auth.permission", "pk": 216, "fields": {"name": "Can change tracking log", "content_type": 73, "codename": "change_trackinglog"}}, {"model": "auth.permission", "pk": 217, "fields": {"name": "Can delete tracking log", "content_type": 73, "codename": "delete_trackinglog"}}, {"model": "auth.permission", "pk": 218, "fields": {"name": "Can add rate limit configuration", "content_type": 74, "codename": "add_ratelimitconfiguration"}}, {"model": "auth.permission", "pk": 219, "fields": {"name": "Can change rate limit configuration", "content_type": 74, "codename": "change_ratelimitconfiguration"}}, {"model": "auth.permission", "pk": 220, "fields": {"name": "Can delete rate limit configuration", "content_type": 74, "codename": "delete_ratelimitconfiguration"}}, {"model": "auth.permission", "pk": 221, "fields": {"name": "Can add certificate whitelist", "content_type": 75, "codename": "add_certificatewhitelist"}}, {"model": "auth.permission", "pk": 222, "fields": {"name": "Can change certificate whitelist", "content_type": 75, "codename": "change_certificatewhitelist"}}, {"model": "auth.permission", "pk": 223, "fields": {"name": "Can delete certificate whitelist", "content_type": 75, "codename": "delete_certificatewhitelist"}}, {"model": "auth.permission", "pk": 224, "fields": {"name": "Can add generated certificate", "content_type": 76, "codename": "add_generatedcertificate"}}, {"model": "auth.permission", "pk": 225, "fields": {"name": "Can change generated certificate", "content_type": 76, "codename": "change_generatedcertificate"}}, {"model": "auth.permission", "pk": 226, "fields": {"name": "Can delete generated certificate", "content_type": 76, "codename": "delete_generatedcertificate"}}, {"model": "auth.permission", "pk": 227, "fields": {"name": "Can add certificate generation history", "content_type": 77, "codename": "add_certificategenerationhistory"}}, {"model": "auth.permission", "pk": 228, "fields": {"name": "Can change certificate generation history", "content_type": 77, "codename": "change_certificategenerationhistory"}}, {"model": "auth.permission", "pk": 229, "fields": {"name": "Can delete certificate generation history", "content_type": 77, "codename": "delete_certificategenerationhistory"}}, {"model": "auth.permission", "pk": 230, "fields": {"name": "Can add certificate invalidation", "content_type": 78, "codename": "add_certificateinvalidation"}}, {"model": "auth.permission", "pk": 231, "fields": {"name": "Can change certificate invalidation", "content_type": 78, "codename": "change_certificateinvalidation"}}, {"model": "auth.permission", "pk": 232, "fields": {"name": "Can delete certificate invalidation", "content_type": 78, "codename": "delete_certificateinvalidation"}}, {"model": "auth.permission", "pk": 233, "fields": {"name": "Can add example certificate set", "content_type": 79, "codename": "add_examplecertificateset"}}, {"model": "auth.permission", "pk": 234, "fields": {"name": "Can change example certificate set", "content_type": 79, "codename": "change_examplecertificateset"}}, {"model": "auth.permission", "pk": 235, "fields": {"name": "Can delete example certificate set", "content_type": 79, "codename": "delete_examplecertificateset"}}, {"model": "auth.permission", "pk": 236, "fields": {"name": "Can add example certificate", "content_type": 80, "codename": "add_examplecertificate"}}, {"model": "auth.permission", "pk": 237, "fields": {"name": "Can change example certificate", "content_type": 80, "codename": "change_examplecertificate"}}, {"model": "auth.permission", "pk": 238, "fields": {"name": "Can delete example certificate", "content_type": 80, "codename": "delete_examplecertificate"}}, {"model": "auth.permission", "pk": 239, "fields": {"name": "Can add certificate generation course setting", "content_type": 81, "codename": "add_certificategenerationcoursesetting"}}, {"model": "auth.permission", "pk": 240, "fields": {"name": "Can change certificate generation course setting", "content_type": 81, "codename": "change_certificategenerationcoursesetting"}}, {"model": "auth.permission", "pk": 241, "fields": {"name": "Can delete certificate generation course setting", "content_type": 81, "codename": "delete_certificategenerationcoursesetting"}}, {"model": "auth.permission", "pk": 242, "fields": {"name": "Can add certificate generation configuration", "content_type": 82, "codename": "add_certificategenerationconfiguration"}}, {"model": "auth.permission", "pk": 243, "fields": {"name": "Can change certificate generation configuration", "content_type": 82, "codename": "change_certificategenerationconfiguration"}}, {"model": "auth.permission", "pk": 244, "fields": {"name": "Can delete certificate generation configuration", "content_type": 82, "codename": "delete_certificategenerationconfiguration"}}, {"model": "auth.permission", "pk": 245, "fields": {"name": "Can add certificate html view configuration", "content_type": 83, "codename": "add_certificatehtmlviewconfiguration"}}, {"model": "auth.permission", "pk": 246, "fields": {"name": "Can change certificate html view configuration", "content_type": 83, "codename": "change_certificatehtmlviewconfiguration"}}, {"model": "auth.permission", "pk": 247, "fields": {"name": "Can delete certificate html view configuration", "content_type": 83, "codename": "delete_certificatehtmlviewconfiguration"}}, {"model": "auth.permission", "pk": 248, "fields": {"name": "Can add certificate template", "content_type": 84, "codename": "add_certificatetemplate"}}, {"model": "auth.permission", "pk": 249, "fields": {"name": "Can change certificate template", "content_type": 84, "codename": "change_certificatetemplate"}}, {"model": "auth.permission", "pk": 250, "fields": {"name": "Can delete certificate template", "content_type": 84, "codename": "delete_certificatetemplate"}}, {"model": "auth.permission", "pk": 251, "fields": {"name": "Can add certificate template asset", "content_type": 85, "codename": "add_certificatetemplateasset"}}, {"model": "auth.permission", "pk": 252, "fields": {"name": "Can change certificate template asset", "content_type": 85, "codename": "change_certificatetemplateasset"}}, {"model": "auth.permission", "pk": 253, "fields": {"name": "Can delete certificate template asset", "content_type": 85, "codename": "delete_certificatetemplateasset"}}, {"model": "auth.permission", "pk": 254, "fields": {"name": "Can add instructor task", "content_type": 86, "codename": "add_instructortask"}}, {"model": "auth.permission", "pk": 255, "fields": {"name": "Can change instructor task", "content_type": 86, "codename": "change_instructortask"}}, {"model": "auth.permission", "pk": 256, "fields": {"name": "Can delete instructor task", "content_type": 86, "codename": "delete_instructortask"}}, {"model": "auth.permission", "pk": 257, "fields": {"name": "Can add grade report setting", "content_type": 87, "codename": "add_gradereportsetting"}}, {"model": "auth.permission", "pk": 258, "fields": {"name": "Can change grade report setting", "content_type": 87, "codename": "change_gradereportsetting"}}, {"model": "auth.permission", "pk": 259, "fields": {"name": "Can delete grade report setting", "content_type": 87, "codename": "delete_gradereportsetting"}}, {"model": "auth.permission", "pk": 260, "fields": {"name": "Can add course user group", "content_type": 88, "codename": "add_courseusergroup"}}, {"model": "auth.permission", "pk": 261, "fields": {"name": "Can change course user group", "content_type": 88, "codename": "change_courseusergroup"}}, {"model": "auth.permission", "pk": 262, "fields": {"name": "Can delete course user group", "content_type": 88, "codename": "delete_courseusergroup"}}, {"model": "auth.permission", "pk": 263, "fields": {"name": "Can add cohort membership", "content_type": 89, "codename": "add_cohortmembership"}}, {"model": "auth.permission", "pk": 264, "fields": {"name": "Can change cohort membership", "content_type": 89, "codename": "change_cohortmembership"}}, {"model": "auth.permission", "pk": 265, "fields": {"name": "Can delete cohort membership", "content_type": 89, "codename": "delete_cohortmembership"}}, {"model": "auth.permission", "pk": 266, "fields": {"name": "Can add course user group partition group", "content_type": 90, "codename": "add_courseusergrouppartitiongroup"}}, {"model": "auth.permission", "pk": 267, "fields": {"name": "Can change course user group partition group", "content_type": 90, "codename": "change_courseusergrouppartitiongroup"}}, {"model": "auth.permission", "pk": 268, "fields": {"name": "Can delete course user group partition group", "content_type": 90, "codename": "delete_courseusergrouppartitiongroup"}}, {"model": "auth.permission", "pk": 269, "fields": {"name": "Can add course cohorts settings", "content_type": 91, "codename": "add_coursecohortssettings"}}, {"model": "auth.permission", "pk": 270, "fields": {"name": "Can change course cohorts settings", "content_type": 91, "codename": "change_coursecohortssettings"}}, {"model": "auth.permission", "pk": 271, "fields": {"name": "Can delete course cohorts settings", "content_type": 91, "codename": "delete_coursecohortssettings"}}, {"model": "auth.permission", "pk": 272, "fields": {"name": "Can add course cohort", "content_type": 92, "codename": "add_coursecohort"}}, {"model": "auth.permission", "pk": 273, "fields": {"name": "Can change course cohort", "content_type": 92, "codename": "change_coursecohort"}}, {"model": "auth.permission", "pk": 274, "fields": {"name": "Can delete course cohort", "content_type": 92, "codename": "delete_coursecohort"}}, {"model": "auth.permission", "pk": 275, "fields": {"name": "Can add unregistered learner cohort assignments", "content_type": 93, "codename": "add_unregisteredlearnercohortassignments"}}, {"model": "auth.permission", "pk": 276, "fields": {"name": "Can change unregistered learner cohort assignments", "content_type": 93, "codename": "change_unregisteredlearnercohortassignments"}}, {"model": "auth.permission", "pk": 277, "fields": {"name": "Can delete unregistered learner cohort assignments", "content_type": 93, "codename": "delete_unregisteredlearnercohortassignments"}}, {"model": "auth.permission", "pk": 278, "fields": {"name": "Can add target", "content_type": 94, "codename": "add_target"}}, {"model": "auth.permission", "pk": 279, "fields": {"name": "Can change target", "content_type": 94, "codename": "change_target"}}, {"model": "auth.permission", "pk": 280, "fields": {"name": "Can delete target", "content_type": 94, "codename": "delete_target"}}, {"model": "auth.permission", "pk": 281, "fields": {"name": "Can add cohort target", "content_type": 95, "codename": "add_cohorttarget"}}, {"model": "auth.permission", "pk": 282, "fields": {"name": "Can change cohort target", "content_type": 95, "codename": "change_cohorttarget"}}, {"model": "auth.permission", "pk": 283, "fields": {"name": "Can delete cohort target", "content_type": 95, "codename": "delete_cohorttarget"}}, {"model": "auth.permission", "pk": 284, "fields": {"name": "Can add course mode target", "content_type": 96, "codename": "add_coursemodetarget"}}, {"model": "auth.permission", "pk": 285, "fields": {"name": "Can change course mode target", "content_type": 96, "codename": "change_coursemodetarget"}}, {"model": "auth.permission", "pk": 286, "fields": {"name": "Can delete course mode target", "content_type": 96, "codename": "delete_coursemodetarget"}}, {"model": "auth.permission", "pk": 287, "fields": {"name": "Can add course email", "content_type": 97, "codename": "add_courseemail"}}, {"model": "auth.permission", "pk": 288, "fields": {"name": "Can change course email", "content_type": 97, "codename": "change_courseemail"}}, {"model": "auth.permission", "pk": 289, "fields": {"name": "Can delete course email", "content_type": 97, "codename": "delete_courseemail"}}, {"model": "auth.permission", "pk": 290, "fields": {"name": "Can add optout", "content_type": 98, "codename": "add_optout"}}, {"model": "auth.permission", "pk": 291, "fields": {"name": "Can change optout", "content_type": 98, "codename": "change_optout"}}, {"model": "auth.permission", "pk": 292, "fields": {"name": "Can delete optout", "content_type": 98, "codename": "delete_optout"}}, {"model": "auth.permission", "pk": 293, "fields": {"name": "Can add course email template", "content_type": 99, "codename": "add_courseemailtemplate"}}, {"model": "auth.permission", "pk": 294, "fields": {"name": "Can change course email template", "content_type": 99, "codename": "change_courseemailtemplate"}}, {"model": "auth.permission", "pk": 295, "fields": {"name": "Can delete course email template", "content_type": 99, "codename": "delete_courseemailtemplate"}}, {"model": "auth.permission", "pk": 296, "fields": {"name": "Can add course authorization", "content_type": 100, "codename": "add_courseauthorization"}}, {"model": "auth.permission", "pk": 297, "fields": {"name": "Can change course authorization", "content_type": 100, "codename": "change_courseauthorization"}}, {"model": "auth.permission", "pk": 298, "fields": {"name": "Can delete course authorization", "content_type": 100, "codename": "delete_courseauthorization"}}, {"model": "auth.permission", "pk": 299, "fields": {"name": "Can add bulk email flag", "content_type": 101, "codename": "add_bulkemailflag"}}, {"model": "auth.permission", "pk": 300, "fields": {"name": "Can change bulk email flag", "content_type": 101, "codename": "change_bulkemailflag"}}, {"model": "auth.permission", "pk": 301, "fields": {"name": "Can delete bulk email flag", "content_type": 101, "codename": "delete_bulkemailflag"}}, {"model": "auth.permission", "pk": 302, "fields": {"name": "Can add branding info config", "content_type": 102, "codename": "add_brandinginfoconfig"}}, {"model": "auth.permission", "pk": 303, "fields": {"name": "Can change branding info config", "content_type": 102, "codename": "change_brandinginfoconfig"}}, {"model": "auth.permission", "pk": 304, "fields": {"name": "Can delete branding info config", "content_type": 102, "codename": "delete_brandinginfoconfig"}}, {"model": "auth.permission", "pk": 305, "fields": {"name": "Can add branding api config", "content_type": 103, "codename": "add_brandingapiconfig"}}, {"model": "auth.permission", "pk": 306, "fields": {"name": "Can change branding api config", "content_type": 103, "codename": "change_brandingapiconfig"}}, {"model": "auth.permission", "pk": 307, "fields": {"name": "Can delete branding api config", "content_type": 103, "codename": "delete_brandingapiconfig"}}, {"model": "auth.permission", "pk": 308, "fields": {"name": "Can add visible blocks", "content_type": 104, "codename": "add_visibleblocks"}}, {"model": "auth.permission", "pk": 309, "fields": {"name": "Can change visible blocks", "content_type": 104, "codename": "change_visibleblocks"}}, {"model": "auth.permission", "pk": 310, "fields": {"name": "Can delete visible blocks", "content_type": 104, "codename": "delete_visibleblocks"}}, {"model": "auth.permission", "pk": 311, "fields": {"name": "Can add persistent subsection grade", "content_type": 105, "codename": "add_persistentsubsectiongrade"}}, {"model": "auth.permission", "pk": 312, "fields": {"name": "Can change persistent subsection grade", "content_type": 105, "codename": "change_persistentsubsectiongrade"}}, {"model": "auth.permission", "pk": 313, "fields": {"name": "Can delete persistent subsection grade", "content_type": 105, "codename": "delete_persistentsubsectiongrade"}}, {"model": "auth.permission", "pk": 314, "fields": {"name": "Can add persistent course grade", "content_type": 106, "codename": "add_persistentcoursegrade"}}, {"model": "auth.permission", "pk": 315, "fields": {"name": "Can change persistent course grade", "content_type": 106, "codename": "change_persistentcoursegrade"}}, {"model": "auth.permission", "pk": 316, "fields": {"name": "Can delete persistent course grade", "content_type": 106, "codename": "delete_persistentcoursegrade"}}, {"model": "auth.permission", "pk": 317, "fields": {"name": "Can add persistent subsection grade override", "content_type": 107, "codename": "add_persistentsubsectiongradeoverride"}}, {"model": "auth.permission", "pk": 318, "fields": {"name": "Can change persistent subsection grade override", "content_type": 107, "codename": "change_persistentsubsectiongradeoverride"}}, {"model": "auth.permission", "pk": 319, "fields": {"name": "Can delete persistent subsection grade override", "content_type": 107, "codename": "delete_persistentsubsectiongradeoverride"}}, {"model": "auth.permission", "pk": 320, "fields": {"name": "Can add persistent grades enabled flag", "content_type": 108, "codename": "add_persistentgradesenabledflag"}}, {"model": "auth.permission", "pk": 321, "fields": {"name": "Can change persistent grades enabled flag", "content_type": 108, "codename": "change_persistentgradesenabledflag"}}, {"model": "auth.permission", "pk": 322, "fields": {"name": "Can delete persistent grades enabled flag", "content_type": 108, "codename": "delete_persistentgradesenabledflag"}}, {"model": "auth.permission", "pk": 323, "fields": {"name": "Can add course persistent grades flag", "content_type": 109, "codename": "add_coursepersistentgradesflag"}}, {"model": "auth.permission", "pk": 324, "fields": {"name": "Can change course persistent grades flag", "content_type": 109, "codename": "change_coursepersistentgradesflag"}}, {"model": "auth.permission", "pk": 325, "fields": {"name": "Can delete course persistent grades flag", "content_type": 109, "codename": "delete_coursepersistentgradesflag"}}, {"model": "auth.permission", "pk": 326, "fields": {"name": "Can add compute grades setting", "content_type": 110, "codename": "add_computegradessetting"}}, {"model": "auth.permission", "pk": 327, "fields": {"name": "Can change compute grades setting", "content_type": 110, "codename": "change_computegradessetting"}}, {"model": "auth.permission", "pk": 328, "fields": {"name": "Can delete compute grades setting", "content_type": 110, "codename": "delete_computegradessetting"}}, {"model": "auth.permission", "pk": 329, "fields": {"name": "Can add external auth map", "content_type": 111, "codename": "add_externalauthmap"}}, {"model": "auth.permission", "pk": 330, "fields": {"name": "Can change external auth map", "content_type": 111, "codename": "change_externalauthmap"}}, {"model": "auth.permission", "pk": 331, "fields": {"name": "Can delete external auth map", "content_type": 111, "codename": "delete_externalauthmap"}}, {"model": "auth.permission", "pk": 332, "fields": {"name": "Can add nonce", "content_type": 112, "codename": "add_nonce"}}, {"model": "auth.permission", "pk": 333, "fields": {"name": "Can change nonce", "content_type": 112, "codename": "change_nonce"}}, {"model": "auth.permission", "pk": 334, "fields": {"name": "Can delete nonce", "content_type": 112, "codename": "delete_nonce"}}, {"model": "auth.permission", "pk": 335, "fields": {"name": "Can add association", "content_type": 113, "codename": "add_association"}}, {"model": "auth.permission", "pk": 336, "fields": {"name": "Can change association", "content_type": 113, "codename": "change_association"}}, {"model": "auth.permission", "pk": 337, "fields": {"name": "Can delete association", "content_type": 113, "codename": "delete_association"}}, {"model": "auth.permission", "pk": 338, "fields": {"name": "Can add user open id", "content_type": 114, "codename": "add_useropenid"}}, {"model": "auth.permission", "pk": 339, "fields": {"name": "Can change user open id", "content_type": 114, "codename": "change_useropenid"}}, {"model": "auth.permission", "pk": 340, "fields": {"name": "Can delete user open id", "content_type": 114, "codename": "delete_useropenid"}}, {"model": "auth.permission", "pk": 341, "fields": {"name": "The OpenID has been verified", "content_type": 114, "codename": "account_verified"}}, {"model": "auth.permission", "pk": 342, "fields": {"name": "Can add client", "content_type": 115, "codename": "add_client"}}, {"model": "auth.permission", "pk": 343, "fields": {"name": "Can change client", "content_type": 115, "codename": "change_client"}}, {"model": "auth.permission", "pk": 344, "fields": {"name": "Can delete client", "content_type": 115, "codename": "delete_client"}}, {"model": "auth.permission", "pk": 345, "fields": {"name": "Can add grant", "content_type": 116, "codename": "add_grant"}}, {"model": "auth.permission", "pk": 346, "fields": {"name": "Can change grant", "content_type": 116, "codename": "change_grant"}}, {"model": "auth.permission", "pk": 347, "fields": {"name": "Can delete grant", "content_type": 116, "codename": "delete_grant"}}, {"model": "auth.permission", "pk": 348, "fields": {"name": "Can add access token", "content_type": 117, "codename": "add_accesstoken"}}, {"model": "auth.permission", "pk": 349, "fields": {"name": "Can change access token", "content_type": 117, "codename": "change_accesstoken"}}, {"model": "auth.permission", "pk": 350, "fields": {"name": "Can delete access token", "content_type": 117, "codename": "delete_accesstoken"}}, {"model": "auth.permission", "pk": 351, "fields": {"name": "Can add refresh token", "content_type": 118, "codename": "add_refreshtoken"}}, {"model": "auth.permission", "pk": 352, "fields": {"name": "Can change refresh token", "content_type": 118, "codename": "change_refreshtoken"}}, {"model": "auth.permission", "pk": 353, "fields": {"name": "Can delete refresh token", "content_type": 118, "codename": "delete_refreshtoken"}}, {"model": "auth.permission", "pk": 354, "fields": {"name": "Can add trusted client", "content_type": 119, "codename": "add_trustedclient"}}, {"model": "auth.permission", "pk": 355, "fields": {"name": "Can change trusted client", "content_type": 119, "codename": "change_trustedclient"}}, {"model": "auth.permission", "pk": 356, "fields": {"name": "Can delete trusted client", "content_type": 119, "codename": "delete_trustedclient"}}, {"model": "auth.permission", "pk": 357, "fields": {"name": "Can add application", "content_type": 120, "codename": "add_application"}}, {"model": "auth.permission", "pk": 358, "fields": {"name": "Can change application", "content_type": 120, "codename": "change_application"}}, {"model": "auth.permission", "pk": 359, "fields": {"name": "Can delete application", "content_type": 120, "codename": "delete_application"}}, {"model": "auth.permission", "pk": 360, "fields": {"name": "Can add grant", "content_type": 121, "codename": "add_grant"}}, {"model": "auth.permission", "pk": 361, "fields": {"name": "Can change grant", "content_type": 121, "codename": "change_grant"}}, {"model": "auth.permission", "pk": 362, "fields": {"name": "Can delete grant", "content_type": 121, "codename": "delete_grant"}}, {"model": "auth.permission", "pk": 363, "fields": {"name": "Can add access token", "content_type": 122, "codename": "add_accesstoken"}}, {"model": "auth.permission", "pk": 364, "fields": {"name": "Can change access token", "content_type": 122, "codename": "change_accesstoken"}}, {"model": "auth.permission", "pk": 365, "fields": {"name": "Can delete access token", "content_type": 122, "codename": "delete_accesstoken"}}, {"model": "auth.permission", "pk": 366, "fields": {"name": "Can add refresh token", "content_type": 123, "codename": "add_refreshtoken"}}, {"model": "auth.permission", "pk": 367, "fields": {"name": "Can change refresh token", "content_type": 123, "codename": "change_refreshtoken"}}, {"model": "auth.permission", "pk": 368, "fields": {"name": "Can delete refresh token", "content_type": 123, "codename": "delete_refreshtoken"}}, {"model": "auth.permission", "pk": 369, "fields": {"name": "Can add restricted application", "content_type": 124, "codename": "add_restrictedapplication"}}, {"model": "auth.permission", "pk": 370, "fields": {"name": "Can change restricted application", "content_type": 124, "codename": "change_restrictedapplication"}}, {"model": "auth.permission", "pk": 371, "fields": {"name": "Can delete restricted application", "content_type": 124, "codename": "delete_restrictedapplication"}}, {"model": "auth.permission", "pk": 372, "fields": {"name": "Can add Provider Configuration (OAuth)", "content_type": 125, "codename": "add_oauth2providerconfig"}}, {"model": "auth.permission", "pk": 373, "fields": {"name": "Can change Provider Configuration (OAuth)", "content_type": 125, "codename": "change_oauth2providerconfig"}}, {"model": "auth.permission", "pk": 374, "fields": {"name": "Can delete Provider Configuration (OAuth)", "content_type": 125, "codename": "delete_oauth2providerconfig"}}, {"model": "auth.permission", "pk": 375, "fields": {"name": "Can add Provider Configuration (SAML IdP)", "content_type": 126, "codename": "add_samlproviderconfig"}}, {"model": "auth.permission", "pk": 376, "fields": {"name": "Can change Provider Configuration (SAML IdP)", "content_type": 126, "codename": "change_samlproviderconfig"}}, {"model": "auth.permission", "pk": 377, "fields": {"name": "Can delete Provider Configuration (SAML IdP)", "content_type": 126, "codename": "delete_samlproviderconfig"}}, {"model": "auth.permission", "pk": 378, "fields": {"name": "Can add SAML Configuration", "content_type": 127, "codename": "add_samlconfiguration"}}, {"model": "auth.permission", "pk": 379, "fields": {"name": "Can change SAML Configuration", "content_type": 127, "codename": "change_samlconfiguration"}}, {"model": "auth.permission", "pk": 380, "fields": {"name": "Can delete SAML Configuration", "content_type": 127, "codename": "delete_samlconfiguration"}}, {"model": "auth.permission", "pk": 381, "fields": {"name": "Can add SAML Provider Data", "content_type": 128, "codename": "add_samlproviderdata"}}, {"model": "auth.permission", "pk": 382, "fields": {"name": "Can change SAML Provider Data", "content_type": 128, "codename": "change_samlproviderdata"}}, {"model": "auth.permission", "pk": 383, "fields": {"name": "Can delete SAML Provider Data", "content_type": 128, "codename": "delete_samlproviderdata"}}, {"model": "auth.permission", "pk": 384, "fields": {"name": "Can add Provider Configuration (LTI)", "content_type": 129, "codename": "add_ltiproviderconfig"}}, {"model": "auth.permission", "pk": 385, "fields": {"name": "Can change Provider Configuration (LTI)", "content_type": 129, "codename": "change_ltiproviderconfig"}}, {"model": "auth.permission", "pk": 386, "fields": {"name": "Can delete Provider Configuration (LTI)", "content_type": 129, "codename": "delete_ltiproviderconfig"}}, {"model": "auth.permission", "pk": 387, "fields": {"name": "Can add Provider API Permission", "content_type": 130, "codename": "add_providerapipermissions"}}, {"model": "auth.permission", "pk": 388, "fields": {"name": "Can change Provider API Permission", "content_type": 130, "codename": "change_providerapipermissions"}}, {"model": "auth.permission", "pk": 389, "fields": {"name": "Can delete Provider API Permission", "content_type": 130, "codename": "delete_providerapipermissions"}}, {"model": "auth.permission", "pk": 390, "fields": {"name": "Can add nonce", "content_type": 131, "codename": "add_nonce"}}, {"model": "auth.permission", "pk": 391, "fields": {"name": "Can change nonce", "content_type": 131, "codename": "change_nonce"}}, {"model": "auth.permission", "pk": 392, "fields": {"name": "Can delete nonce", "content_type": 131, "codename": "delete_nonce"}}, {"model": "auth.permission", "pk": 393, "fields": {"name": "Can add scope", "content_type": 132, "codename": "add_scope"}}, {"model": "auth.permission", "pk": 394, "fields": {"name": "Can change scope", "content_type": 132, "codename": "change_scope"}}, {"model": "auth.permission", "pk": 395, "fields": {"name": "Can delete scope", "content_type": 132, "codename": "delete_scope"}}, {"model": "auth.permission", "pk": 396, "fields": {"name": "Can add resource", "content_type": 132, "codename": "add_resource"}}, {"model": "auth.permission", "pk": 397, "fields": {"name": "Can change resource", "content_type": 132, "codename": "change_resource"}}, {"model": "auth.permission", "pk": 398, "fields": {"name": "Can delete resource", "content_type": 132, "codename": "delete_resource"}}, {"model": "auth.permission", "pk": 399, "fields": {"name": "Can add consumer", "content_type": 133, "codename": "add_consumer"}}, {"model": "auth.permission", "pk": 400, "fields": {"name": "Can change consumer", "content_type": 133, "codename": "change_consumer"}}, {"model": "auth.permission", "pk": 401, "fields": {"name": "Can delete consumer", "content_type": 133, "codename": "delete_consumer"}}, {"model": "auth.permission", "pk": 402, "fields": {"name": "Can add token", "content_type": 134, "codename": "add_token"}}, {"model": "auth.permission", "pk": 403, "fields": {"name": "Can change token", "content_type": 134, "codename": "change_token"}}, {"model": "auth.permission", "pk": 404, "fields": {"name": "Can delete token", "content_type": 134, "codename": "delete_token"}}, {"model": "auth.permission", "pk": 405, "fields": {"name": "Can add article", "content_type": 136, "codename": "add_article"}}, {"model": "auth.permission", "pk": 406, "fields": {"name": "Can change article", "content_type": 136, "codename": "change_article"}}, {"model": "auth.permission", "pk": 407, "fields": {"name": "Can delete article", "content_type": 136, "codename": "delete_article"}}, {"model": "auth.permission", "pk": 408, "fields": {"name": "Can edit all articles and lock/unlock/restore", "content_type": 136, "codename": "moderate"}}, {"model": "auth.permission", "pk": 409, "fields": {"name": "Can change ownership of any article", "content_type": 136, "codename": "assign"}}, {"model": "auth.permission", "pk": 410, "fields": {"name": "Can assign permissions to other users", "content_type": 136, "codename": "grant"}}, {"model": "auth.permission", "pk": 411, "fields": {"name": "Can add Article for object", "content_type": 137, "codename": "add_articleforobject"}}, {"model": "auth.permission", "pk": 412, "fields": {"name": "Can change Article for object", "content_type": 137, "codename": "change_articleforobject"}}, {"model": "auth.permission", "pk": 413, "fields": {"name": "Can delete Article for object", "content_type": 137, "codename": "delete_articleforobject"}}, {"model": "auth.permission", "pk": 414, "fields": {"name": "Can add article revision", "content_type": 138, "codename": "add_articlerevision"}}, {"model": "auth.permission", "pk": 415, "fields": {"name": "Can change article revision", "content_type": 138, "codename": "change_articlerevision"}}, {"model": "auth.permission", "pk": 416, "fields": {"name": "Can delete article revision", "content_type": 138, "codename": "delete_articlerevision"}}, {"model": "auth.permission", "pk": 417, "fields": {"name": "Can add article plugin", "content_type": 139, "codename": "add_articleplugin"}}, {"model": "auth.permission", "pk": 418, "fields": {"name": "Can change article plugin", "content_type": 139, "codename": "change_articleplugin"}}, {"model": "auth.permission", "pk": 419, "fields": {"name": "Can delete article plugin", "content_type": 139, "codename": "delete_articleplugin"}}, {"model": "auth.permission", "pk": 420, "fields": {"name": "Can add reusable plugin", "content_type": 140, "codename": "add_reusableplugin"}}, {"model": "auth.permission", "pk": 421, "fields": {"name": "Can change reusable plugin", "content_type": 140, "codename": "change_reusableplugin"}}, {"model": "auth.permission", "pk": 422, "fields": {"name": "Can delete reusable plugin", "content_type": 140, "codename": "delete_reusableplugin"}}, {"model": "auth.permission", "pk": 423, "fields": {"name": "Can add simple plugin", "content_type": 141, "codename": "add_simpleplugin"}}, {"model": "auth.permission", "pk": 424, "fields": {"name": "Can change simple plugin", "content_type": 141, "codename": "change_simpleplugin"}}, {"model": "auth.permission", "pk": 425, "fields": {"name": "Can delete simple plugin", "content_type": 141, "codename": "delete_simpleplugin"}}, {"model": "auth.permission", "pk": 426, "fields": {"name": "Can add revision plugin", "content_type": 142, "codename": "add_revisionplugin"}}, {"model": "auth.permission", "pk": 427, "fields": {"name": "Can change revision plugin", "content_type": 142, "codename": "change_revisionplugin"}}, {"model": "auth.permission", "pk": 428, "fields": {"name": "Can delete revision plugin", "content_type": 142, "codename": "delete_revisionplugin"}}, {"model": "auth.permission", "pk": 429, "fields": {"name": "Can add revision plugin revision", "content_type": 143, "codename": "add_revisionpluginrevision"}}, {"model": "auth.permission", "pk": 430, "fields": {"name": "Can change revision plugin revision", "content_type": 143, "codename": "change_revisionpluginrevision"}}, {"model": "auth.permission", "pk": 431, "fields": {"name": "Can delete revision plugin revision", "content_type": 143, "codename": "delete_revisionpluginrevision"}}, {"model": "auth.permission", "pk": 432, "fields": {"name": "Can add URL path", "content_type": 144, "codename": "add_urlpath"}}, {"model": "auth.permission", "pk": 433, "fields": {"name": "Can change URL path", "content_type": 144, "codename": "change_urlpath"}}, {"model": "auth.permission", "pk": 434, "fields": {"name": "Can delete URL path", "content_type": 144, "codename": "delete_urlpath"}}, {"model": "auth.permission", "pk": 435, "fields": {"name": "Can add type", "content_type": 145, "codename": "add_notificationtype"}}, {"model": "auth.permission", "pk": 436, "fields": {"name": "Can change type", "content_type": 145, "codename": "change_notificationtype"}}, {"model": "auth.permission", "pk": 437, "fields": {"name": "Can delete type", "content_type": 145, "codename": "delete_notificationtype"}}, {"model": "auth.permission", "pk": 438, "fields": {"name": "Can add settings", "content_type": 146, "codename": "add_settings"}}, {"model": "auth.permission", "pk": 439, "fields": {"name": "Can change settings", "content_type": 146, "codename": "change_settings"}}, {"model": "auth.permission", "pk": 440, "fields": {"name": "Can delete settings", "content_type": 146, "codename": "delete_settings"}}, {"model": "auth.permission", "pk": 441, "fields": {"name": "Can add subscription", "content_type": 147, "codename": "add_subscription"}}, {"model": "auth.permission", "pk": 442, "fields": {"name": "Can change subscription", "content_type": 147, "codename": "change_subscription"}}, {"model": "auth.permission", "pk": 443, "fields": {"name": "Can delete subscription", "content_type": 147, "codename": "delete_subscription"}}, {"model": "auth.permission", "pk": 444, "fields": {"name": "Can add notification", "content_type": 148, "codename": "add_notification"}}, {"model": "auth.permission", "pk": 445, "fields": {"name": "Can change notification", "content_type": 148, "codename": "change_notification"}}, {"model": "auth.permission", "pk": 446, "fields": {"name": "Can delete notification", "content_type": 148, "codename": "delete_notification"}}, {"model": "auth.permission", "pk": 447, "fields": {"name": "Can add log entry", "content_type": 149, "codename": "add_logentry"}}, {"model": "auth.permission", "pk": 448, "fields": {"name": "Can change log entry", "content_type": 149, "codename": "change_logentry"}}, {"model": "auth.permission", "pk": 449, "fields": {"name": "Can delete log entry", "content_type": 149, "codename": "delete_logentry"}}, {"model": "auth.permission", "pk": 450, "fields": {"name": "Can add role", "content_type": 150, "codename": "add_role"}}, {"model": "auth.permission", "pk": 451, "fields": {"name": "Can change role", "content_type": 150, "codename": "change_role"}}, {"model": "auth.permission", "pk": 452, "fields": {"name": "Can delete role", "content_type": 150, "codename": "delete_role"}}, {"model": "auth.permission", "pk": 453, "fields": {"name": "Can add permission", "content_type": 151, "codename": "add_permission"}}, {"model": "auth.permission", "pk": 454, "fields": {"name": "Can change permission", "content_type": 151, "codename": "change_permission"}}, {"model": "auth.permission", "pk": 455, "fields": {"name": "Can delete permission", "content_type": 151, "codename": "delete_permission"}}, {"model": "auth.permission", "pk": 456, "fields": {"name": "Can add forums config", "content_type": 152, "codename": "add_forumsconfig"}}, {"model": "auth.permission", "pk": 457, "fields": {"name": "Can change forums config", "content_type": 152, "codename": "change_forumsconfig"}}, {"model": "auth.permission", "pk": 458, "fields": {"name": "Can delete forums config", "content_type": 152, "codename": "delete_forumsconfig"}}, {"model": "auth.permission", "pk": 459, "fields": {"name": "Can add course discussion settings", "content_type": 153, "codename": "add_coursediscussionsettings"}}, {"model": "auth.permission", "pk": 460, "fields": {"name": "Can change course discussion settings", "content_type": 153, "codename": "change_coursediscussionsettings"}}, {"model": "auth.permission", "pk": 461, "fields": {"name": "Can delete course discussion settings", "content_type": 153, "codename": "delete_coursediscussionsettings"}}, {"model": "auth.permission", "pk": 462, "fields": {"name": "Can add note", "content_type": 154, "codename": "add_note"}}, {"model": "auth.permission", "pk": 463, "fields": {"name": "Can change note", "content_type": 154, "codename": "change_note"}}, {"model": "auth.permission", "pk": 464, "fields": {"name": "Can delete note", "content_type": 154, "codename": "delete_note"}}, {"model": "auth.permission", "pk": 465, "fields": {"name": "Can add splash config", "content_type": 155, "codename": "add_splashconfig"}}, {"model": "auth.permission", "pk": 466, "fields": {"name": "Can change splash config", "content_type": 155, "codename": "change_splashconfig"}}, {"model": "auth.permission", "pk": 467, "fields": {"name": "Can delete splash config", "content_type": 155, "codename": "delete_splashconfig"}}, {"model": "auth.permission", "pk": 468, "fields": {"name": "Can add user preference", "content_type": 156, "codename": "add_userpreference"}}, {"model": "auth.permission", "pk": 469, "fields": {"name": "Can change user preference", "content_type": 156, "codename": "change_userpreference"}}, {"model": "auth.permission", "pk": 470, "fields": {"name": "Can delete user preference", "content_type": 156, "codename": "delete_userpreference"}}, {"model": "auth.permission", "pk": 471, "fields": {"name": "Can add user course tag", "content_type": 157, "codename": "add_usercoursetag"}}, {"model": "auth.permission", "pk": 472, "fields": {"name": "Can change user course tag", "content_type": 157, "codename": "change_usercoursetag"}}, {"model": "auth.permission", "pk": 473, "fields": {"name": "Can delete user course tag", "content_type": 157, "codename": "delete_usercoursetag"}}, {"model": "auth.permission", "pk": 474, "fields": {"name": "Can add user org tag", "content_type": 158, "codename": "add_userorgtag"}}, {"model": "auth.permission", "pk": 475, "fields": {"name": "Can change user org tag", "content_type": 158, "codename": "change_userorgtag"}}, {"model": "auth.permission", "pk": 476, "fields": {"name": "Can delete user org tag", "content_type": 158, "codename": "delete_userorgtag"}}, {"model": "auth.permission", "pk": 477, "fields": {"name": "Can add order", "content_type": 159, "codename": "add_order"}}, {"model": "auth.permission", "pk": 478, "fields": {"name": "Can change order", "content_type": 159, "codename": "change_order"}}, {"model": "auth.permission", "pk": 479, "fields": {"name": "Can delete order", "content_type": 159, "codename": "delete_order"}}, {"model": "auth.permission", "pk": 480, "fields": {"name": "Can add order item", "content_type": 160, "codename": "add_orderitem"}}, {"model": "auth.permission", "pk": 481, "fields": {"name": "Can change order item", "content_type": 160, "codename": "change_orderitem"}}, {"model": "auth.permission", "pk": 482, "fields": {"name": "Can delete order item", "content_type": 160, "codename": "delete_orderitem"}}, {"model": "auth.permission", "pk": 483, "fields": {"name": "Can add invoice", "content_type": 161, "codename": "add_invoice"}}, {"model": "auth.permission", "pk": 484, "fields": {"name": "Can change invoice", "content_type": 161, "codename": "change_invoice"}}, {"model": "auth.permission", "pk": 485, "fields": {"name": "Can delete invoice", "content_type": 161, "codename": "delete_invoice"}}, {"model": "auth.permission", "pk": 486, "fields": {"name": "Can add invoice transaction", "content_type": 162, "codename": "add_invoicetransaction"}}, {"model": "auth.permission", "pk": 487, "fields": {"name": "Can change invoice transaction", "content_type": 162, "codename": "change_invoicetransaction"}}, {"model": "auth.permission", "pk": 488, "fields": {"name": "Can delete invoice transaction", "content_type": 162, "codename": "delete_invoicetransaction"}}, {"model": "auth.permission", "pk": 489, "fields": {"name": "Can add invoice item", "content_type": 163, "codename": "add_invoiceitem"}}, {"model": "auth.permission", "pk": 490, "fields": {"name": "Can change invoice item", "content_type": 163, "codename": "change_invoiceitem"}}, {"model": "auth.permission", "pk": 491, "fields": {"name": "Can delete invoice item", "content_type": 163, "codename": "delete_invoiceitem"}}, {"model": "auth.permission", "pk": 492, "fields": {"name": "Can add course registration code invoice item", "content_type": 164, "codename": "add_courseregistrationcodeinvoiceitem"}}, {"model": "auth.permission", "pk": 493, "fields": {"name": "Can change course registration code invoice item", "content_type": 164, "codename": "change_courseregistrationcodeinvoiceitem"}}, {"model": "auth.permission", "pk": 494, "fields": {"name": "Can delete course registration code invoice item", "content_type": 164, "codename": "delete_courseregistrationcodeinvoiceitem"}}, {"model": "auth.permission", "pk": 495, "fields": {"name": "Can add invoice history", "content_type": 165, "codename": "add_invoicehistory"}}, {"model": "auth.permission", "pk": 496, "fields": {"name": "Can change invoice history", "content_type": 165, "codename": "change_invoicehistory"}}, {"model": "auth.permission", "pk": 497, "fields": {"name": "Can delete invoice history", "content_type": 165, "codename": "delete_invoicehistory"}}, {"model": "auth.permission", "pk": 498, "fields": {"name": "Can add course registration code", "content_type": 166, "codename": "add_courseregistrationcode"}}, {"model": "auth.permission", "pk": 499, "fields": {"name": "Can change course registration code", "content_type": 166, "codename": "change_courseregistrationcode"}}, {"model": "auth.permission", "pk": 500, "fields": {"name": "Can delete course registration code", "content_type": 166, "codename": "delete_courseregistrationcode"}}, {"model": "auth.permission", "pk": 501, "fields": {"name": "Can add registration code redemption", "content_type": 167, "codename": "add_registrationcoderedemption"}}, {"model": "auth.permission", "pk": 502, "fields": {"name": "Can change registration code redemption", "content_type": 167, "codename": "change_registrationcoderedemption"}}, {"model": "auth.permission", "pk": 503, "fields": {"name": "Can delete registration code redemption", "content_type": 167, "codename": "delete_registrationcoderedemption"}}, {"model": "auth.permission", "pk": 504, "fields": {"name": "Can add coupon", "content_type": 168, "codename": "add_coupon"}}, {"model": "auth.permission", "pk": 505, "fields": {"name": "Can change coupon", "content_type": 168, "codename": "change_coupon"}}, {"model": "auth.permission", "pk": 506, "fields": {"name": "Can delete coupon", "content_type": 168, "codename": "delete_coupon"}}, {"model": "auth.permission", "pk": 507, "fields": {"name": "Can add coupon redemption", "content_type": 169, "codename": "add_couponredemption"}}, {"model": "auth.permission", "pk": 508, "fields": {"name": "Can change coupon redemption", "content_type": 169, "codename": "change_couponredemption"}}, {"model": "auth.permission", "pk": 509, "fields": {"name": "Can delete coupon redemption", "content_type": 169, "codename": "delete_couponredemption"}}, {"model": "auth.permission", "pk": 510, "fields": {"name": "Can add paid course registration", "content_type": 170, "codename": "add_paidcourseregistration"}}, {"model": "auth.permission", "pk": 511, "fields": {"name": "Can change paid course registration", "content_type": 170, "codename": "change_paidcourseregistration"}}, {"model": "auth.permission", "pk": 512, "fields": {"name": "Can delete paid course registration", "content_type": 170, "codename": "delete_paidcourseregistration"}}, {"model": "auth.permission", "pk": 513, "fields": {"name": "Can add course reg code item", "content_type": 171, "codename": "add_courseregcodeitem"}}, {"model": "auth.permission", "pk": 514, "fields": {"name": "Can change course reg code item", "content_type": 171, "codename": "change_courseregcodeitem"}}, {"model": "auth.permission", "pk": 515, "fields": {"name": "Can delete course reg code item", "content_type": 171, "codename": "delete_courseregcodeitem"}}, {"model": "auth.permission", "pk": 516, "fields": {"name": "Can add course reg code item annotation", "content_type": 172, "codename": "add_courseregcodeitemannotation"}}, {"model": "auth.permission", "pk": 517, "fields": {"name": "Can change course reg code item annotation", "content_type": 172, "codename": "change_courseregcodeitemannotation"}}, {"model": "auth.permission", "pk": 518, "fields": {"name": "Can delete course reg code item annotation", "content_type": 172, "codename": "delete_courseregcodeitemannotation"}}, {"model": "auth.permission", "pk": 519, "fields": {"name": "Can add paid course registration annotation", "content_type": 173, "codename": "add_paidcourseregistrationannotation"}}, {"model": "auth.permission", "pk": 520, "fields": {"name": "Can change paid course registration annotation", "content_type": 173, "codename": "change_paidcourseregistrationannotation"}}, {"model": "auth.permission", "pk": 521, "fields": {"name": "Can delete paid course registration annotation", "content_type": 173, "codename": "delete_paidcourseregistrationannotation"}}, {"model": "auth.permission", "pk": 522, "fields": {"name": "Can add certificate item", "content_type": 174, "codename": "add_certificateitem"}}, {"model": "auth.permission", "pk": 523, "fields": {"name": "Can change certificate item", "content_type": 174, "codename": "change_certificateitem"}}, {"model": "auth.permission", "pk": 524, "fields": {"name": "Can delete certificate item", "content_type": 174, "codename": "delete_certificateitem"}}, {"model": "auth.permission", "pk": 525, "fields": {"name": "Can add donation configuration", "content_type": 175, "codename": "add_donationconfiguration"}}, {"model": "auth.permission", "pk": 526, "fields": {"name": "Can change donation configuration", "content_type": 175, "codename": "change_donationconfiguration"}}, {"model": "auth.permission", "pk": 527, "fields": {"name": "Can delete donation configuration", "content_type": 175, "codename": "delete_donationconfiguration"}}, {"model": "auth.permission", "pk": 528, "fields": {"name": "Can add donation", "content_type": 176, "codename": "add_donation"}}, {"model": "auth.permission", "pk": 529, "fields": {"name": "Can change donation", "content_type": 176, "codename": "change_donation"}}, {"model": "auth.permission", "pk": 530, "fields": {"name": "Can delete donation", "content_type": 176, "codename": "delete_donation"}}, {"model": "auth.permission", "pk": 531, "fields": {"name": "Can add course mode", "content_type": 177, "codename": "add_coursemode"}}, {"model": "auth.permission", "pk": 532, "fields": {"name": "Can change course mode", "content_type": 177, "codename": "change_coursemode"}}, {"model": "auth.permission", "pk": 533, "fields": {"name": "Can delete course mode", "content_type": 177, "codename": "delete_coursemode"}}, {"model": "auth.permission", "pk": 534, "fields": {"name": "Can add course modes archive", "content_type": 178, "codename": "add_coursemodesarchive"}}, {"model": "auth.permission", "pk": 535, "fields": {"name": "Can change course modes archive", "content_type": 178, "codename": "change_coursemodesarchive"}}, {"model": "auth.permission", "pk": 536, "fields": {"name": "Can delete course modes archive", "content_type": 178, "codename": "delete_coursemodesarchive"}}, {"model": "auth.permission", "pk": 537, "fields": {"name": "Can add course mode expiration config", "content_type": 179, "codename": "add_coursemodeexpirationconfig"}}, {"model": "auth.permission", "pk": 538, "fields": {"name": "Can change course mode expiration config", "content_type": 179, "codename": "change_coursemodeexpirationconfig"}}, {"model": "auth.permission", "pk": 539, "fields": {"name": "Can delete course mode expiration config", "content_type": 179, "codename": "delete_coursemodeexpirationconfig"}}, {"model": "auth.permission", "pk": 540, "fields": {"name": "Can add course entitlement", "content_type": 180, "codename": "add_courseentitlement"}}, {"model": "auth.permission", "pk": 541, "fields": {"name": "Can change course entitlement", "content_type": 180, "codename": "change_courseentitlement"}}, {"model": "auth.permission", "pk": 542, "fields": {"name": "Can delete course entitlement", "content_type": 180, "codename": "delete_courseentitlement"}}, {"model": "auth.permission", "pk": 543, "fields": {"name": "Can add software secure photo verification", "content_type": 181, "codename": "add_softwaresecurephotoverification"}}, {"model": "auth.permission", "pk": 544, "fields": {"name": "Can change software secure photo verification", "content_type": 181, "codename": "change_softwaresecurephotoverification"}}, {"model": "auth.permission", "pk": 545, "fields": {"name": "Can delete software secure photo verification", "content_type": 181, "codename": "delete_softwaresecurephotoverification"}}, {"model": "auth.permission", "pk": 546, "fields": {"name": "Can add verification deadline", "content_type": 182, "codename": "add_verificationdeadline"}}, {"model": "auth.permission", "pk": 547, "fields": {"name": "Can change verification deadline", "content_type": 182, "codename": "change_verificationdeadline"}}, {"model": "auth.permission", "pk": 548, "fields": {"name": "Can delete verification deadline", "content_type": 182, "codename": "delete_verificationdeadline"}}, {"model": "auth.permission", "pk": 549, "fields": {"name": "Can add verification checkpoint", "content_type": 183, "codename": "add_verificationcheckpoint"}}, {"model": "auth.permission", "pk": 550, "fields": {"name": "Can change verification checkpoint", "content_type": 183, "codename": "change_verificationcheckpoint"}}, {"model": "auth.permission", "pk": 551, "fields": {"name": "Can delete verification checkpoint", "content_type": 183, "codename": "delete_verificationcheckpoint"}}, {"model": "auth.permission", "pk": 552, "fields": {"name": "Can add Verification Status", "content_type": 184, "codename": "add_verificationstatus"}}, {"model": "auth.permission", "pk": 553, "fields": {"name": "Can change Verification Status", "content_type": 184, "codename": "change_verificationstatus"}}, {"model": "auth.permission", "pk": 554, "fields": {"name": "Can delete Verification Status", "content_type": 184, "codename": "delete_verificationstatus"}}, {"model": "auth.permission", "pk": 555, "fields": {"name": "Can add in course reverification configuration", "content_type": 185, "codename": "add_incoursereverificationconfiguration"}}, {"model": "auth.permission", "pk": 556, "fields": {"name": "Can change in course reverification configuration", "content_type": 185, "codename": "change_incoursereverificationconfiguration"}}, {"model": "auth.permission", "pk": 557, "fields": {"name": "Can delete in course reverification configuration", "content_type": 185, "codename": "delete_incoursereverificationconfiguration"}}, {"model": "auth.permission", "pk": 558, "fields": {"name": "Can add icrv status emails configuration", "content_type": 186, "codename": "add_icrvstatusemailsconfiguration"}}, {"model": "auth.permission", "pk": 559, "fields": {"name": "Can change icrv status emails configuration", "content_type": 186, "codename": "change_icrvstatusemailsconfiguration"}}, {"model": "auth.permission", "pk": 560, "fields": {"name": "Can delete icrv status emails configuration", "content_type": 186, "codename": "delete_icrvstatusemailsconfiguration"}}, {"model": "auth.permission", "pk": 561, "fields": {"name": "Can add skipped reverification", "content_type": 187, "codename": "add_skippedreverification"}}, {"model": "auth.permission", "pk": 562, "fields": {"name": "Can change skipped reverification", "content_type": 187, "codename": "change_skippedreverification"}}, {"model": "auth.permission", "pk": 563, "fields": {"name": "Can delete skipped reverification", "content_type": 187, "codename": "delete_skippedreverification"}}, {"model": "auth.permission", "pk": 564, "fields": {"name": "Can add dark lang config", "content_type": 188, "codename": "add_darklangconfig"}}, {"model": "auth.permission", "pk": 565, "fields": {"name": "Can change dark lang config", "content_type": 188, "codename": "change_darklangconfig"}}, {"model": "auth.permission", "pk": 566, "fields": {"name": "Can delete dark lang config", "content_type": 188, "codename": "delete_darklangconfig"}}, {"model": "auth.permission", "pk": 567, "fields": {"name": "Can add microsite", "content_type": 189, "codename": "add_microsite"}}, {"model": "auth.permission", "pk": 568, "fields": {"name": "Can change microsite", "content_type": 189, "codename": "change_microsite"}}, {"model": "auth.permission", "pk": 569, "fields": {"name": "Can delete microsite", "content_type": 189, "codename": "delete_microsite"}}, {"model": "auth.permission", "pk": 570, "fields": {"name": "Can add microsite history", "content_type": 190, "codename": "add_micrositehistory"}}, {"model": "auth.permission", "pk": 571, "fields": {"name": "Can change microsite history", "content_type": 190, "codename": "change_micrositehistory"}}, {"model": "auth.permission", "pk": 572, "fields": {"name": "Can delete microsite history", "content_type": 190, "codename": "delete_micrositehistory"}}, {"model": "auth.permission", "pk": 573, "fields": {"name": "Can add microsite organization mapping", "content_type": 191, "codename": "add_micrositeorganizationmapping"}}, {"model": "auth.permission", "pk": 574, "fields": {"name": "Can change microsite organization mapping", "content_type": 191, "codename": "change_micrositeorganizationmapping"}}, {"model": "auth.permission", "pk": 575, "fields": {"name": "Can delete microsite organization mapping", "content_type": 191, "codename": "delete_micrositeorganizationmapping"}}, {"model": "auth.permission", "pk": 576, "fields": {"name": "Can add microsite template", "content_type": 192, "codename": "add_micrositetemplate"}}, {"model": "auth.permission", "pk": 577, "fields": {"name": "Can change microsite template", "content_type": 192, "codename": "change_micrositetemplate"}}, {"model": "auth.permission", "pk": 578, "fields": {"name": "Can delete microsite template", "content_type": 192, "codename": "delete_micrositetemplate"}}, {"model": "auth.permission", "pk": 579, "fields": {"name": "Can add whitelisted rss url", "content_type": 193, "codename": "add_whitelistedrssurl"}}, {"model": "auth.permission", "pk": 580, "fields": {"name": "Can change whitelisted rss url", "content_type": 193, "codename": "change_whitelistedrssurl"}}, {"model": "auth.permission", "pk": 581, "fields": {"name": "Can delete whitelisted rss url", "content_type": 193, "codename": "delete_whitelistedrssurl"}}, {"model": "auth.permission", "pk": 582, "fields": {"name": "Can add embargoed course", "content_type": 194, "codename": "add_embargoedcourse"}}, {"model": "auth.permission", "pk": 583, "fields": {"name": "Can change embargoed course", "content_type": 194, "codename": "change_embargoedcourse"}}, {"model": "auth.permission", "pk": 584, "fields": {"name": "Can delete embargoed course", "content_type": 194, "codename": "delete_embargoedcourse"}}, {"model": "auth.permission", "pk": 585, "fields": {"name": "Can add embargoed state", "content_type": 195, "codename": "add_embargoedstate"}}, {"model": "auth.permission", "pk": 586, "fields": {"name": "Can change embargoed state", "content_type": 195, "codename": "change_embargoedstate"}}, {"model": "auth.permission", "pk": 587, "fields": {"name": "Can delete embargoed state", "content_type": 195, "codename": "delete_embargoedstate"}}, {"model": "auth.permission", "pk": 588, "fields": {"name": "Can add restricted course", "content_type": 196, "codename": "add_restrictedcourse"}}, {"model": "auth.permission", "pk": 589, "fields": {"name": "Can change restricted course", "content_type": 196, "codename": "change_restrictedcourse"}}, {"model": "auth.permission", "pk": 590, "fields": {"name": "Can delete restricted course", "content_type": 196, "codename": "delete_restrictedcourse"}}, {"model": "auth.permission", "pk": 591, "fields": {"name": "Can add country", "content_type": 197, "codename": "add_country"}}, {"model": "auth.permission", "pk": 592, "fields": {"name": "Can change country", "content_type": 197, "codename": "change_country"}}, {"model": "auth.permission", "pk": 593, "fields": {"name": "Can delete country", "content_type": 197, "codename": "delete_country"}}, {"model": "auth.permission", "pk": 594, "fields": {"name": "Can add country access rule", "content_type": 198, "codename": "add_countryaccessrule"}}, {"model": "auth.permission", "pk": 595, "fields": {"name": "Can change country access rule", "content_type": 198, "codename": "change_countryaccessrule"}}, {"model": "auth.permission", "pk": 596, "fields": {"name": "Can delete country access rule", "content_type": 198, "codename": "delete_countryaccessrule"}}, {"model": "auth.permission", "pk": 597, "fields": {"name": "Can add course access rule history", "content_type": 199, "codename": "add_courseaccessrulehistory"}}, {"model": "auth.permission", "pk": 598, "fields": {"name": "Can change course access rule history", "content_type": 199, "codename": "change_courseaccessrulehistory"}}, {"model": "auth.permission", "pk": 599, "fields": {"name": "Can delete course access rule history", "content_type": 199, "codename": "delete_courseaccessrulehistory"}}, {"model": "auth.permission", "pk": 600, "fields": {"name": "Can add ip filter", "content_type": 200, "codename": "add_ipfilter"}}, {"model": "auth.permission", "pk": 601, "fields": {"name": "Can change ip filter", "content_type": 200, "codename": "change_ipfilter"}}, {"model": "auth.permission", "pk": 602, "fields": {"name": "Can delete ip filter", "content_type": 200, "codename": "delete_ipfilter"}}, {"model": "auth.permission", "pk": 603, "fields": {"name": "Can add course rerun state", "content_type": 201, "codename": "add_coursererunstate"}}, {"model": "auth.permission", "pk": 604, "fields": {"name": "Can change course rerun state", "content_type": 201, "codename": "change_coursererunstate"}}, {"model": "auth.permission", "pk": 605, "fields": {"name": "Can delete course rerun state", "content_type": 201, "codename": "delete_coursererunstate"}}, {"model": "auth.permission", "pk": 606, "fields": {"name": "Can add mobile api config", "content_type": 202, "codename": "add_mobileapiconfig"}}, {"model": "auth.permission", "pk": 607, "fields": {"name": "Can change mobile api config", "content_type": 202, "codename": "change_mobileapiconfig"}}, {"model": "auth.permission", "pk": 608, "fields": {"name": "Can delete mobile api config", "content_type": 202, "codename": "delete_mobileapiconfig"}}, {"model": "auth.permission", "pk": 609, "fields": {"name": "Can add app version config", "content_type": 203, "codename": "add_appversionconfig"}}, {"model": "auth.permission", "pk": 610, "fields": {"name": "Can change app version config", "content_type": 203, "codename": "change_appversionconfig"}}, {"model": "auth.permission", "pk": 611, "fields": {"name": "Can delete app version config", "content_type": 203, "codename": "delete_appversionconfig"}}, {"model": "auth.permission", "pk": 612, "fields": {"name": "Can add ignore mobile available flag config", "content_type": 204, "codename": "add_ignoremobileavailableflagconfig"}}, {"model": "auth.permission", "pk": 613, "fields": {"name": "Can change ignore mobile available flag config", "content_type": 204, "codename": "change_ignoremobileavailableflagconfig"}}, {"model": "auth.permission", "pk": 614, "fields": {"name": "Can delete ignore mobile available flag config", "content_type": 204, "codename": "delete_ignoremobileavailableflagconfig"}}, {"model": "auth.permission", "pk": 615, "fields": {"name": "Can add user social auth", "content_type": 205, "codename": "add_usersocialauth"}}, {"model": "auth.permission", "pk": 616, "fields": {"name": "Can change user social auth", "content_type": 205, "codename": "change_usersocialauth"}}, {"model": "auth.permission", "pk": 617, "fields": {"name": "Can delete user social auth", "content_type": 205, "codename": "delete_usersocialauth"}}, {"model": "auth.permission", "pk": 618, "fields": {"name": "Can add nonce", "content_type": 206, "codename": "add_nonce"}}, {"model": "auth.permission", "pk": 619, "fields": {"name": "Can change nonce", "content_type": 206, "codename": "change_nonce"}}, {"model": "auth.permission", "pk": 620, "fields": {"name": "Can delete nonce", "content_type": 206, "codename": "delete_nonce"}}, {"model": "auth.permission", "pk": 621, "fields": {"name": "Can add association", "content_type": 207, "codename": "add_association"}}, {"model": "auth.permission", "pk": 622, "fields": {"name": "Can change association", "content_type": 207, "codename": "change_association"}}, {"model": "auth.permission", "pk": 623, "fields": {"name": "Can delete association", "content_type": 207, "codename": "delete_association"}}, {"model": "auth.permission", "pk": 624, "fields": {"name": "Can add code", "content_type": 208, "codename": "add_code"}}, {"model": "auth.permission", "pk": 625, "fields": {"name": "Can change code", "content_type": 208, "codename": "change_code"}}, {"model": "auth.permission", "pk": 626, "fields": {"name": "Can delete code", "content_type": 208, "codename": "delete_code"}}, {"model": "auth.permission", "pk": 627, "fields": {"name": "Can add partial", "content_type": 209, "codename": "add_partial"}}, {"model": "auth.permission", "pk": 628, "fields": {"name": "Can change partial", "content_type": 209, "codename": "change_partial"}}, {"model": "auth.permission", "pk": 629, "fields": {"name": "Can delete partial", "content_type": 209, "codename": "delete_partial"}}, {"model": "auth.permission", "pk": 630, "fields": {"name": "Can add survey form", "content_type": 210, "codename": "add_surveyform"}}, {"model": "auth.permission", "pk": 631, "fields": {"name": "Can change survey form", "content_type": 210, "codename": "change_surveyform"}}, {"model": "auth.permission", "pk": 632, "fields": {"name": "Can delete survey form", "content_type": 210, "codename": "delete_surveyform"}}, {"model": "auth.permission", "pk": 633, "fields": {"name": "Can add survey answer", "content_type": 211, "codename": "add_surveyanswer"}}, {"model": "auth.permission", "pk": 634, "fields": {"name": "Can change survey answer", "content_type": 211, "codename": "change_surveyanswer"}}, {"model": "auth.permission", "pk": 635, "fields": {"name": "Can delete survey answer", "content_type": 211, "codename": "delete_surveyanswer"}}, {"model": "auth.permission", "pk": 636, "fields": {"name": "Can add x block asides config", "content_type": 212, "codename": "add_xblockasidesconfig"}}, {"model": "auth.permission", "pk": 637, "fields": {"name": "Can change x block asides config", "content_type": 212, "codename": "change_xblockasidesconfig"}}, {"model": "auth.permission", "pk": 638, "fields": {"name": "Can delete x block asides config", "content_type": 212, "codename": "delete_xblockasidesconfig"}}, {"model": "auth.permission", "pk": 639, "fields": {"name": "Can add answer", "content_type": 213, "codename": "add_answer"}}, {"model": "auth.permission", "pk": 640, "fields": {"name": "Can change answer", "content_type": 213, "codename": "change_answer"}}, {"model": "auth.permission", "pk": 641, "fields": {"name": "Can delete answer", "content_type": 213, "codename": "delete_answer"}}, {"model": "auth.permission", "pk": 642, "fields": {"name": "Can add share", "content_type": 214, "codename": "add_share"}}, {"model": "auth.permission", "pk": 643, "fields": {"name": "Can change share", "content_type": 214, "codename": "change_share"}}, {"model": "auth.permission", "pk": 644, "fields": {"name": "Can delete share", "content_type": 214, "codename": "delete_share"}}, {"model": "auth.permission", "pk": 645, "fields": {"name": "Can add student item", "content_type": 215, "codename": "add_studentitem"}}, {"model": "auth.permission", "pk": 646, "fields": {"name": "Can change student item", "content_type": 215, "codename": "change_studentitem"}}, {"model": "auth.permission", "pk": 647, "fields": {"name": "Can delete student item", "content_type": 215, "codename": "delete_studentitem"}}, {"model": "auth.permission", "pk": 648, "fields": {"name": "Can add submission", "content_type": 216, "codename": "add_submission"}}, {"model": "auth.permission", "pk": 649, "fields": {"name": "Can change submission", "content_type": 216, "codename": "change_submission"}}, {"model": "auth.permission", "pk": 650, "fields": {"name": "Can delete submission", "content_type": 216, "codename": "delete_submission"}}, {"model": "auth.permission", "pk": 651, "fields": {"name": "Can add score", "content_type": 217, "codename": "add_score"}}, {"model": "auth.permission", "pk": 652, "fields": {"name": "Can change score", "content_type": 217, "codename": "change_score"}}, {"model": "auth.permission", "pk": 653, "fields": {"name": "Can delete score", "content_type": 217, "codename": "delete_score"}}, {"model": "auth.permission", "pk": 654, "fields": {"name": "Can add score summary", "content_type": 218, "codename": "add_scoresummary"}}, {"model": "auth.permission", "pk": 655, "fields": {"name": "Can change score summary", "content_type": 218, "codename": "change_scoresummary"}}, {"model": "auth.permission", "pk": 656, "fields": {"name": "Can delete score summary", "content_type": 218, "codename": "delete_scoresummary"}}, {"model": "auth.permission", "pk": 657, "fields": {"name": "Can add score annotation", "content_type": 219, "codename": "add_scoreannotation"}}, {"model": "auth.permission", "pk": 658, "fields": {"name": "Can change score annotation", "content_type": 219, "codename": "change_scoreannotation"}}, {"model": "auth.permission", "pk": 659, "fields": {"name": "Can delete score annotation", "content_type": 219, "codename": "delete_scoreannotation"}}, {"model": "auth.permission", "pk": 660, "fields": {"name": "Can add rubric", "content_type": 220, "codename": "add_rubric"}}, {"model": "auth.permission", "pk": 661, "fields": {"name": "Can change rubric", "content_type": 220, "codename": "change_rubric"}}, {"model": "auth.permission", "pk": 662, "fields": {"name": "Can delete rubric", "content_type": 220, "codename": "delete_rubric"}}, {"model": "auth.permission", "pk": 663, "fields": {"name": "Can add criterion", "content_type": 221, "codename": "add_criterion"}}, {"model": "auth.permission", "pk": 664, "fields": {"name": "Can change criterion", "content_type": 221, "codename": "change_criterion"}}, {"model": "auth.permission", "pk": 665, "fields": {"name": "Can delete criterion", "content_type": 221, "codename": "delete_criterion"}}, {"model": "auth.permission", "pk": 666, "fields": {"name": "Can add criterion option", "content_type": 222, "codename": "add_criterionoption"}}, {"model": "auth.permission", "pk": 667, "fields": {"name": "Can change criterion option", "content_type": 222, "codename": "change_criterionoption"}}, {"model": "auth.permission", "pk": 668, "fields": {"name": "Can delete criterion option", "content_type": 222, "codename": "delete_criterionoption"}}, {"model": "auth.permission", "pk": 669, "fields": {"name": "Can add assessment", "content_type": 223, "codename": "add_assessment"}}, {"model": "auth.permission", "pk": 670, "fields": {"name": "Can change assessment", "content_type": 223, "codename": "change_assessment"}}, {"model": "auth.permission", "pk": 671, "fields": {"name": "Can delete assessment", "content_type": 223, "codename": "delete_assessment"}}, {"model": "auth.permission", "pk": 672, "fields": {"name": "Can add assessment part", "content_type": 224, "codename": "add_assessmentpart"}}, {"model": "auth.permission", "pk": 673, "fields": {"name": "Can change assessment part", "content_type": 224, "codename": "change_assessmentpart"}}, {"model": "auth.permission", "pk": 674, "fields": {"name": "Can delete assessment part", "content_type": 224, "codename": "delete_assessmentpart"}}, {"model": "auth.permission", "pk": 675, "fields": {"name": "Can add assessment feedback option", "content_type": 225, "codename": "add_assessmentfeedbackoption"}}, {"model": "auth.permission", "pk": 676, "fields": {"name": "Can change assessment feedback option", "content_type": 225, "codename": "change_assessmentfeedbackoption"}}, {"model": "auth.permission", "pk": 677, "fields": {"name": "Can delete assessment feedback option", "content_type": 225, "codename": "delete_assessmentfeedbackoption"}}, {"model": "auth.permission", "pk": 678, "fields": {"name": "Can add assessment feedback", "content_type": 226, "codename": "add_assessmentfeedback"}}, {"model": "auth.permission", "pk": 679, "fields": {"name": "Can change assessment feedback", "content_type": 226, "codename": "change_assessmentfeedback"}}, {"model": "auth.permission", "pk": 680, "fields": {"name": "Can delete assessment feedback", "content_type": 226, "codename": "delete_assessmentfeedback"}}, {"model": "auth.permission", "pk": 681, "fields": {"name": "Can add peer workflow", "content_type": 227, "codename": "add_peerworkflow"}}, {"model": "auth.permission", "pk": 682, "fields": {"name": "Can change peer workflow", "content_type": 227, "codename": "change_peerworkflow"}}, {"model": "auth.permission", "pk": 683, "fields": {"name": "Can delete peer workflow", "content_type": 227, "codename": "delete_peerworkflow"}}, {"model": "auth.permission", "pk": 684, "fields": {"name": "Can add peer workflow item", "content_type": 228, "codename": "add_peerworkflowitem"}}, {"model": "auth.permission", "pk": 685, "fields": {"name": "Can change peer workflow item", "content_type": 228, "codename": "change_peerworkflowitem"}}, {"model": "auth.permission", "pk": 686, "fields": {"name": "Can delete peer workflow item", "content_type": 228, "codename": "delete_peerworkflowitem"}}, {"model": "auth.permission", "pk": 687, "fields": {"name": "Can add training example", "content_type": 229, "codename": "add_trainingexample"}}, {"model": "auth.permission", "pk": 688, "fields": {"name": "Can change training example", "content_type": 229, "codename": "change_trainingexample"}}, {"model": "auth.permission", "pk": 689, "fields": {"name": "Can delete training example", "content_type": 229, "codename": "delete_trainingexample"}}, {"model": "auth.permission", "pk": 690, "fields": {"name": "Can add student training workflow", "content_type": 230, "codename": "add_studenttrainingworkflow"}}, {"model": "auth.permission", "pk": 691, "fields": {"name": "Can change student training workflow", "content_type": 230, "codename": "change_studenttrainingworkflow"}}, {"model": "auth.permission", "pk": 692, "fields": {"name": "Can delete student training workflow", "content_type": 230, "codename": "delete_studenttrainingworkflow"}}, {"model": "auth.permission", "pk": 693, "fields": {"name": "Can add student training workflow item", "content_type": 231, "codename": "add_studenttrainingworkflowitem"}}, {"model": "auth.permission", "pk": 694, "fields": {"name": "Can change student training workflow item", "content_type": 231, "codename": "change_studenttrainingworkflowitem"}}, {"model": "auth.permission", "pk": 695, "fields": {"name": "Can delete student training workflow item", "content_type": 231, "codename": "delete_studenttrainingworkflowitem"}}, {"model": "auth.permission", "pk": 696, "fields": {"name": "Can add staff workflow", "content_type": 232, "codename": "add_staffworkflow"}}, {"model": "auth.permission", "pk": 697, "fields": {"name": "Can change staff workflow", "content_type": 232, "codename": "change_staffworkflow"}}, {"model": "auth.permission", "pk": 698, "fields": {"name": "Can delete staff workflow", "content_type": 232, "codename": "delete_staffworkflow"}}, {"model": "auth.permission", "pk": 699, "fields": {"name": "Can add assessment workflow", "content_type": 233, "codename": "add_assessmentworkflow"}}, {"model": "auth.permission", "pk": 700, "fields": {"name": "Can change assessment workflow", "content_type": 233, "codename": "change_assessmentworkflow"}}, {"model": "auth.permission", "pk": 701, "fields": {"name": "Can delete assessment workflow", "content_type": 233, "codename": "delete_assessmentworkflow"}}, {"model": "auth.permission", "pk": 702, "fields": {"name": "Can add assessment workflow step", "content_type": 234, "codename": "add_assessmentworkflowstep"}}, {"model": "auth.permission", "pk": 703, "fields": {"name": "Can change assessment workflow step", "content_type": 234, "codename": "change_assessmentworkflowstep"}}, {"model": "auth.permission", "pk": 704, "fields": {"name": "Can delete assessment workflow step", "content_type": 234, "codename": "delete_assessmentworkflowstep"}}, {"model": "auth.permission", "pk": 705, "fields": {"name": "Can add assessment workflow cancellation", "content_type": 235, "codename": "add_assessmentworkflowcancellation"}}, {"model": "auth.permission", "pk": 706, "fields": {"name": "Can change assessment workflow cancellation", "content_type": 235, "codename": "change_assessmentworkflowcancellation"}}, {"model": "auth.permission", "pk": 707, "fields": {"name": "Can delete assessment workflow cancellation", "content_type": 235, "codename": "delete_assessmentworkflowcancellation"}}, {"model": "auth.permission", "pk": 708, "fields": {"name": "Can add profile", "content_type": 236, "codename": "add_profile"}}, {"model": "auth.permission", "pk": 709, "fields": {"name": "Can change profile", "content_type": 236, "codename": "change_profile"}}, {"model": "auth.permission", "pk": 710, "fields": {"name": "Can delete profile", "content_type": 236, "codename": "delete_profile"}}, {"model": "auth.permission", "pk": 711, "fields": {"name": "Can add video", "content_type": 237, "codename": "add_video"}}, {"model": "auth.permission", "pk": 712, "fields": {"name": "Can change video", "content_type": 237, "codename": "change_video"}}, {"model": "auth.permission", "pk": 713, "fields": {"name": "Can delete video", "content_type": 237, "codename": "delete_video"}}, {"model": "auth.permission", "pk": 714, "fields": {"name": "Can add course video", "content_type": 238, "codename": "add_coursevideo"}}, {"model": "auth.permission", "pk": 715, "fields": {"name": "Can change course video", "content_type": 238, "codename": "change_coursevideo"}}, {"model": "auth.permission", "pk": 716, "fields": {"name": "Can delete course video", "content_type": 238, "codename": "delete_coursevideo"}}, {"model": "auth.permission", "pk": 717, "fields": {"name": "Can add encoded video", "content_type": 239, "codename": "add_encodedvideo"}}, {"model": "auth.permission", "pk": 718, "fields": {"name": "Can change encoded video", "content_type": 239, "codename": "change_encodedvideo"}}, {"model": "auth.permission", "pk": 719, "fields": {"name": "Can delete encoded video", "content_type": 239, "codename": "delete_encodedvideo"}}, {"model": "auth.permission", "pk": 720, "fields": {"name": "Can add video image", "content_type": 240, "codename": "add_videoimage"}}, {"model": "auth.permission", "pk": 721, "fields": {"name": "Can change video image", "content_type": 240, "codename": "change_videoimage"}}, {"model": "auth.permission", "pk": 722, "fields": {"name": "Can delete video image", "content_type": 240, "codename": "delete_videoimage"}}, {"model": "auth.permission", "pk": 723, "fields": {"name": "Can add video transcript", "content_type": 241, "codename": "add_videotranscript"}}, {"model": "auth.permission", "pk": 724, "fields": {"name": "Can change video transcript", "content_type": 241, "codename": "change_videotranscript"}}, {"model": "auth.permission", "pk": 725, "fields": {"name": "Can delete video transcript", "content_type": 241, "codename": "delete_videotranscript"}}, {"model": "auth.permission", "pk": 726, "fields": {"name": "Can add transcript preference", "content_type": 242, "codename": "add_transcriptpreference"}}, {"model": "auth.permission", "pk": 727, "fields": {"name": "Can change transcript preference", "content_type": 242, "codename": "change_transcriptpreference"}}, {"model": "auth.permission", "pk": 728, "fields": {"name": "Can delete transcript preference", "content_type": 242, "codename": "delete_transcriptpreference"}}, {"model": "auth.permission", "pk": 729, "fields": {"name": "Can add third party transcript credentials state", "content_type": 243, "codename": "add_thirdpartytranscriptcredentialsstate"}}, {"model": "auth.permission", "pk": 730, "fields": {"name": "Can change third party transcript credentials state", "content_type": 243, "codename": "change_thirdpartytranscriptcredentialsstate"}}, {"model": "auth.permission", "pk": 731, "fields": {"name": "Can delete third party transcript credentials state", "content_type": 243, "codename": "delete_thirdpartytranscriptcredentialsstate"}}, {"model": "auth.permission", "pk": 732, "fields": {"name": "Can add course overview", "content_type": 244, "codename": "add_courseoverview"}}, {"model": "auth.permission", "pk": 733, "fields": {"name": "Can change course overview", "content_type": 244, "codename": "change_courseoverview"}}, {"model": "auth.permission", "pk": 734, "fields": {"name": "Can delete course overview", "content_type": 244, "codename": "delete_courseoverview"}}, {"model": "auth.permission", "pk": 735, "fields": {"name": "Can add course overview tab", "content_type": 245, "codename": "add_courseoverviewtab"}}, {"model": "auth.permission", "pk": 736, "fields": {"name": "Can change course overview tab", "content_type": 245, "codename": "change_courseoverviewtab"}}, {"model": "auth.permission", "pk": 737, "fields": {"name": "Can delete course overview tab", "content_type": 245, "codename": "delete_courseoverviewtab"}}, {"model": "auth.permission", "pk": 738, "fields": {"name": "Can add course overview image set", "content_type": 246, "codename": "add_courseoverviewimageset"}}, {"model": "auth.permission", "pk": 739, "fields": {"name": "Can change course overview image set", "content_type": 246, "codename": "change_courseoverviewimageset"}}, {"model": "auth.permission", "pk": 740, "fields": {"name": "Can delete course overview image set", "content_type": 246, "codename": "delete_courseoverviewimageset"}}, {"model": "auth.permission", "pk": 741, "fields": {"name": "Can add course overview image config", "content_type": 247, "codename": "add_courseoverviewimageconfig"}}, {"model": "auth.permission", "pk": 742, "fields": {"name": "Can change course overview image config", "content_type": 247, "codename": "change_courseoverviewimageconfig"}}, {"model": "auth.permission", "pk": 743, "fields": {"name": "Can delete course overview image config", "content_type": 247, "codename": "delete_courseoverviewimageconfig"}}, {"model": "auth.permission", "pk": 744, "fields": {"name": "Can add course structure", "content_type": 248, "codename": "add_coursestructure"}}, {"model": "auth.permission", "pk": 745, "fields": {"name": "Can change course structure", "content_type": 248, "codename": "change_coursestructure"}}, {"model": "auth.permission", "pk": 746, "fields": {"name": "Can delete course structure", "content_type": 248, "codename": "delete_coursestructure"}}, {"model": "auth.permission", "pk": 747, "fields": {"name": "Can add block structure configuration", "content_type": 249, "codename": "add_blockstructureconfiguration"}}, {"model": "auth.permission", "pk": 748, "fields": {"name": "Can change block structure configuration", "content_type": 249, "codename": "change_blockstructureconfiguration"}}, {"model": "auth.permission", "pk": 749, "fields": {"name": "Can delete block structure configuration", "content_type": 249, "codename": "delete_blockstructureconfiguration"}}, {"model": "auth.permission", "pk": 750, "fields": {"name": "Can add block structure model", "content_type": 250, "codename": "add_blockstructuremodel"}}, {"model": "auth.permission", "pk": 751, "fields": {"name": "Can change block structure model", "content_type": 250, "codename": "change_blockstructuremodel"}}, {"model": "auth.permission", "pk": 752, "fields": {"name": "Can delete block structure model", "content_type": 250, "codename": "delete_blockstructuremodel"}}, {"model": "auth.permission", "pk": 753, "fields": {"name": "Can add x domain proxy configuration", "content_type": 251, "codename": "add_xdomainproxyconfiguration"}}, {"model": "auth.permission", "pk": 754, "fields": {"name": "Can change x domain proxy configuration", "content_type": 251, "codename": "change_xdomainproxyconfiguration"}}, {"model": "auth.permission", "pk": 755, "fields": {"name": "Can delete x domain proxy configuration", "content_type": 251, "codename": "delete_xdomainproxyconfiguration"}}, {"model": "auth.permission", "pk": 756, "fields": {"name": "Can add commerce configuration", "content_type": 252, "codename": "add_commerceconfiguration"}}, {"model": "auth.permission", "pk": 757, "fields": {"name": "Can change commerce configuration", "content_type": 252, "codename": "change_commerceconfiguration"}}, {"model": "auth.permission", "pk": 758, "fields": {"name": "Can delete commerce configuration", "content_type": 252, "codename": "delete_commerceconfiguration"}}, {"model": "auth.permission", "pk": 759, "fields": {"name": "Can add credit provider", "content_type": 253, "codename": "add_creditprovider"}}, {"model": "auth.permission", "pk": 760, "fields": {"name": "Can change credit provider", "content_type": 253, "codename": "change_creditprovider"}}, {"model": "auth.permission", "pk": 761, "fields": {"name": "Can delete credit provider", "content_type": 253, "codename": "delete_creditprovider"}}, {"model": "auth.permission", "pk": 762, "fields": {"name": "Can add credit course", "content_type": 254, "codename": "add_creditcourse"}}, {"model": "auth.permission", "pk": 763, "fields": {"name": "Can change credit course", "content_type": 254, "codename": "change_creditcourse"}}, {"model": "auth.permission", "pk": 764, "fields": {"name": "Can delete credit course", "content_type": 254, "codename": "delete_creditcourse"}}, {"model": "auth.permission", "pk": 765, "fields": {"name": "Can add credit requirement", "content_type": 255, "codename": "add_creditrequirement"}}, {"model": "auth.permission", "pk": 766, "fields": {"name": "Can change credit requirement", "content_type": 255, "codename": "change_creditrequirement"}}, {"model": "auth.permission", "pk": 767, "fields": {"name": "Can delete credit requirement", "content_type": 255, "codename": "delete_creditrequirement"}}, {"model": "auth.permission", "pk": 768, "fields": {"name": "Can add credit requirement status", "content_type": 256, "codename": "add_creditrequirementstatus"}}, {"model": "auth.permission", "pk": 769, "fields": {"name": "Can change credit requirement status", "content_type": 256, "codename": "change_creditrequirementstatus"}}, {"model": "auth.permission", "pk": 770, "fields": {"name": "Can delete credit requirement status", "content_type": 256, "codename": "delete_creditrequirementstatus"}}, {"model": "auth.permission", "pk": 771, "fields": {"name": "Can add credit eligibility", "content_type": 257, "codename": "add_crediteligibility"}}, {"model": "auth.permission", "pk": 772, "fields": {"name": "Can change credit eligibility", "content_type": 257, "codename": "change_crediteligibility"}}, {"model": "auth.permission", "pk": 773, "fields": {"name": "Can delete credit eligibility", "content_type": 257, "codename": "delete_crediteligibility"}}, {"model": "auth.permission", "pk": 774, "fields": {"name": "Can add credit request", "content_type": 258, "codename": "add_creditrequest"}}, {"model": "auth.permission", "pk": 775, "fields": {"name": "Can change credit request", "content_type": 258, "codename": "change_creditrequest"}}, {"model": "auth.permission", "pk": 776, "fields": {"name": "Can delete credit request", "content_type": 258, "codename": "delete_creditrequest"}}, {"model": "auth.permission", "pk": 777, "fields": {"name": "Can add credit config", "content_type": 259, "codename": "add_creditconfig"}}, {"model": "auth.permission", "pk": 778, "fields": {"name": "Can change credit config", "content_type": 259, "codename": "change_creditconfig"}}, {"model": "auth.permission", "pk": 779, "fields": {"name": "Can delete credit config", "content_type": 259, "codename": "delete_creditconfig"}}, {"model": "auth.permission", "pk": 780, "fields": {"name": "Can add course team", "content_type": 260, "codename": "add_courseteam"}}, {"model": "auth.permission", "pk": 781, "fields": {"name": "Can change course team", "content_type": 260, "codename": "change_courseteam"}}, {"model": "auth.permission", "pk": 782, "fields": {"name": "Can delete course team", "content_type": 260, "codename": "delete_courseteam"}}, {"model": "auth.permission", "pk": 783, "fields": {"name": "Can add course team membership", "content_type": 261, "codename": "add_courseteammembership"}}, {"model": "auth.permission", "pk": 784, "fields": {"name": "Can change course team membership", "content_type": 261, "codename": "change_courseteammembership"}}, {"model": "auth.permission", "pk": 785, "fields": {"name": "Can delete course team membership", "content_type": 261, "codename": "delete_courseteammembership"}}, {"model": "auth.permission", "pk": 786, "fields": {"name": "Can add x block configuration", "content_type": 262, "codename": "add_xblockconfiguration"}}, {"model": "auth.permission", "pk": 787, "fields": {"name": "Can change x block configuration", "content_type": 262, "codename": "change_xblockconfiguration"}}, {"model": "auth.permission", "pk": 788, "fields": {"name": "Can delete x block configuration", "content_type": 262, "codename": "delete_xblockconfiguration"}}, {"model": "auth.permission", "pk": 789, "fields": {"name": "Can add x block studio configuration flag", "content_type": 263, "codename": "add_xblockstudioconfigurationflag"}}, {"model": "auth.permission", "pk": 790, "fields": {"name": "Can change x block studio configuration flag", "content_type": 263, "codename": "change_xblockstudioconfigurationflag"}}, {"model": "auth.permission", "pk": 791, "fields": {"name": "Can delete x block studio configuration flag", "content_type": 263, "codename": "delete_xblockstudioconfigurationflag"}}, {"model": "auth.permission", "pk": 792, "fields": {"name": "Can add x block studio configuration", "content_type": 264, "codename": "add_xblockstudioconfiguration"}}, {"model": "auth.permission", "pk": 793, "fields": {"name": "Can change x block studio configuration", "content_type": 264, "codename": "change_xblockstudioconfiguration"}}, {"model": "auth.permission", "pk": 794, "fields": {"name": "Can delete x block studio configuration", "content_type": 264, "codename": "delete_xblockstudioconfiguration"}}, {"model": "auth.permission", "pk": 795, "fields": {"name": "Can add programs api config", "content_type": 265, "codename": "add_programsapiconfig"}}, {"model": "auth.permission", "pk": 796, "fields": {"name": "Can change programs api config", "content_type": 265, "codename": "change_programsapiconfig"}}, {"model": "auth.permission", "pk": 797, "fields": {"name": "Can delete programs api config", "content_type": 265, "codename": "delete_programsapiconfig"}}, {"model": "auth.permission", "pk": 798, "fields": {"name": "Can add catalog integration", "content_type": 266, "codename": "add_catalogintegration"}}, {"model": "auth.permission", "pk": 799, "fields": {"name": "Can change catalog integration", "content_type": 266, "codename": "change_catalogintegration"}}, {"model": "auth.permission", "pk": 800, "fields": {"name": "Can delete catalog integration", "content_type": 266, "codename": "delete_catalogintegration"}}, {"model": "auth.permission", "pk": 801, "fields": {"name": "Can add self paced configuration", "content_type": 267, "codename": "add_selfpacedconfiguration"}}, {"model": "auth.permission", "pk": 802, "fields": {"name": "Can change self paced configuration", "content_type": 267, "codename": "change_selfpacedconfiguration"}}, {"model": "auth.permission", "pk": 803, "fields": {"name": "Can delete self paced configuration", "content_type": 267, "codename": "delete_selfpacedconfiguration"}}, {"model": "auth.permission", "pk": 804, "fields": {"name": "Can add kv store", "content_type": 268, "codename": "add_kvstore"}}, {"model": "auth.permission", "pk": 805, "fields": {"name": "Can change kv store", "content_type": 268, "codename": "change_kvstore"}}, {"model": "auth.permission", "pk": 806, "fields": {"name": "Can delete kv store", "content_type": 268, "codename": "delete_kvstore"}}, {"model": "auth.permission", "pk": 807, "fields": {"name": "Can add credentials api config", "content_type": 269, "codename": "add_credentialsapiconfig"}}, {"model": "auth.permission", "pk": 808, "fields": {"name": "Can change credentials api config", "content_type": 269, "codename": "change_credentialsapiconfig"}}, {"model": "auth.permission", "pk": 809, "fields": {"name": "Can delete credentials api config", "content_type": 269, "codename": "delete_credentialsapiconfig"}}, {"model": "auth.permission", "pk": 810, "fields": {"name": "Can add milestone", "content_type": 270, "codename": "add_milestone"}}, {"model": "auth.permission", "pk": 811, "fields": {"name": "Can change milestone", "content_type": 270, "codename": "change_milestone"}}, {"model": "auth.permission", "pk": 812, "fields": {"name": "Can delete milestone", "content_type": 270, "codename": "delete_milestone"}}, {"model": "auth.permission", "pk": 813, "fields": {"name": "Can add milestone relationship type", "content_type": 271, "codename": "add_milestonerelationshiptype"}}, {"model": "auth.permission", "pk": 814, "fields": {"name": "Can change milestone relationship type", "content_type": 271, "codename": "change_milestonerelationshiptype"}}, {"model": "auth.permission", "pk": 815, "fields": {"name": "Can delete milestone relationship type", "content_type": 271, "codename": "delete_milestonerelationshiptype"}}, {"model": "auth.permission", "pk": 816, "fields": {"name": "Can add course milestone", "content_type": 272, "codename": "add_coursemilestone"}}, {"model": "auth.permission", "pk": 817, "fields": {"name": "Can change course milestone", "content_type": 272, "codename": "change_coursemilestone"}}, {"model": "auth.permission", "pk": 818, "fields": {"name": "Can delete course milestone", "content_type": 272, "codename": "delete_coursemilestone"}}, {"model": "auth.permission", "pk": 819, "fields": {"name": "Can add course content milestone", "content_type": 273, "codename": "add_coursecontentmilestone"}}, {"model": "auth.permission", "pk": 820, "fields": {"name": "Can change course content milestone", "content_type": 273, "codename": "change_coursecontentmilestone"}}, {"model": "auth.permission", "pk": 821, "fields": {"name": "Can delete course content milestone", "content_type": 273, "codename": "delete_coursecontentmilestone"}}, {"model": "auth.permission", "pk": 822, "fields": {"name": "Can add user milestone", "content_type": 274, "codename": "add_usermilestone"}}, {"model": "auth.permission", "pk": 823, "fields": {"name": "Can change user milestone", "content_type": 274, "codename": "change_usermilestone"}}, {"model": "auth.permission", "pk": 824, "fields": {"name": "Can delete user milestone", "content_type": 274, "codename": "delete_usermilestone"}}, {"model": "auth.permission", "pk": 825, "fields": {"name": "Can add api access request", "content_type": 1, "codename": "add_apiaccessrequest"}}, {"model": "auth.permission", "pk": 826, "fields": {"name": "Can change api access request", "content_type": 1, "codename": "change_apiaccessrequest"}}, {"model": "auth.permission", "pk": 827, "fields": {"name": "Can delete api access request", "content_type": 1, "codename": "delete_apiaccessrequest"}}, {"model": "auth.permission", "pk": 828, "fields": {"name": "Can add api access config", "content_type": 275, "codename": "add_apiaccessconfig"}}, {"model": "auth.permission", "pk": 829, "fields": {"name": "Can change api access config", "content_type": 275, "codename": "change_apiaccessconfig"}}, {"model": "auth.permission", "pk": 830, "fields": {"name": "Can delete api access config", "content_type": 275, "codename": "delete_apiaccessconfig"}}, {"model": "auth.permission", "pk": 831, "fields": {"name": "Can add catalog", "content_type": 276, "codename": "add_catalog"}}, {"model": "auth.permission", "pk": 832, "fields": {"name": "Can change catalog", "content_type": 276, "codename": "change_catalog"}}, {"model": "auth.permission", "pk": 833, "fields": {"name": "Can delete catalog", "content_type": 276, "codename": "delete_catalog"}}, {"model": "auth.permission", "pk": 834, "fields": {"name": "Can add verified track cohorted course", "content_type": 277, "codename": "add_verifiedtrackcohortedcourse"}}, {"model": "auth.permission", "pk": 835, "fields": {"name": "Can change verified track cohorted course", "content_type": 277, "codename": "change_verifiedtrackcohortedcourse"}}, {"model": "auth.permission", "pk": 836, "fields": {"name": "Can delete verified track cohorted course", "content_type": 277, "codename": "delete_verifiedtrackcohortedcourse"}}, {"model": "auth.permission", "pk": 837, "fields": {"name": "Can add migrate verified track cohorts setting", "content_type": 278, "codename": "add_migrateverifiedtrackcohortssetting"}}, {"model": "auth.permission", "pk": 838, "fields": {"name": "Can change migrate verified track cohorts setting", "content_type": 278, "codename": "change_migrateverifiedtrackcohortssetting"}}, {"model": "auth.permission", "pk": 839, "fields": {"name": "Can delete migrate verified track cohorts setting", "content_type": 278, "codename": "delete_migrateverifiedtrackcohortssetting"}}, {"model": "auth.permission", "pk": 840, "fields": {"name": "Can add badge class", "content_type": 279, "codename": "add_badgeclass"}}, {"model": "auth.permission", "pk": 841, "fields": {"name": "Can change badge class", "content_type": 279, "codename": "change_badgeclass"}}, {"model": "auth.permission", "pk": 842, "fields": {"name": "Can delete badge class", "content_type": 279, "codename": "delete_badgeclass"}}, {"model": "auth.permission", "pk": 843, "fields": {"name": "Can add badge assertion", "content_type": 280, "codename": "add_badgeassertion"}}, {"model": "auth.permission", "pk": 844, "fields": {"name": "Can change badge assertion", "content_type": 280, "codename": "change_badgeassertion"}}, {"model": "auth.permission", "pk": 845, "fields": {"name": "Can delete badge assertion", "content_type": 280, "codename": "delete_badgeassertion"}}, {"model": "auth.permission", "pk": 846, "fields": {"name": "Can add course complete image configuration", "content_type": 281, "codename": "add_coursecompleteimageconfiguration"}}, {"model": "auth.permission", "pk": 847, "fields": {"name": "Can change course complete image configuration", "content_type": 281, "codename": "change_coursecompleteimageconfiguration"}}, {"model": "auth.permission", "pk": 848, "fields": {"name": "Can delete course complete image configuration", "content_type": 281, "codename": "delete_coursecompleteimageconfiguration"}}, {"model": "auth.permission", "pk": 849, "fields": {"name": "Can add course event badges configuration", "content_type": 282, "codename": "add_courseeventbadgesconfiguration"}}, {"model": "auth.permission", "pk": 850, "fields": {"name": "Can change course event badges configuration", "content_type": 282, "codename": "change_courseeventbadgesconfiguration"}}, {"model": "auth.permission", "pk": 851, "fields": {"name": "Can delete course event badges configuration", "content_type": 282, "codename": "delete_courseeventbadgesconfiguration"}}, {"model": "auth.permission", "pk": 852, "fields": {"name": "Can add email marketing configuration", "content_type": 283, "codename": "add_emailmarketingconfiguration"}}, {"model": "auth.permission", "pk": 853, "fields": {"name": "Can change email marketing configuration", "content_type": 283, "codename": "change_emailmarketingconfiguration"}}, {"model": "auth.permission", "pk": 854, "fields": {"name": "Can delete email marketing configuration", "content_type": 283, "codename": "delete_emailmarketingconfiguration"}}, {"model": "auth.permission", "pk": 855, "fields": {"name": "Can add failed task", "content_type": 284, "codename": "add_failedtask"}}, {"model": "auth.permission", "pk": 856, "fields": {"name": "Can change failed task", "content_type": 284, "codename": "change_failedtask"}}, {"model": "auth.permission", "pk": 857, "fields": {"name": "Can delete failed task", "content_type": 284, "codename": "delete_failedtask"}}, {"model": "auth.permission", "pk": 858, "fields": {"name": "Can add chord data", "content_type": 285, "codename": "add_chorddata"}}, {"model": "auth.permission", "pk": 859, "fields": {"name": "Can change chord data", "content_type": 285, "codename": "change_chorddata"}}, {"model": "auth.permission", "pk": 860, "fields": {"name": "Can delete chord data", "content_type": 285, "codename": "delete_chorddata"}}, {"model": "auth.permission", "pk": 861, "fields": {"name": "Can add crawlers config", "content_type": 286, "codename": "add_crawlersconfig"}}, {"model": "auth.permission", "pk": 862, "fields": {"name": "Can change crawlers config", "content_type": 286, "codename": "change_crawlersconfig"}}, {"model": "auth.permission", "pk": 863, "fields": {"name": "Can delete crawlers config", "content_type": 286, "codename": "delete_crawlersconfig"}}, {"model": "auth.permission", "pk": 864, "fields": {"name": "Can add Waffle flag course override", "content_type": 287, "codename": "add_waffleflagcourseoverridemodel"}}, {"model": "auth.permission", "pk": 865, "fields": {"name": "Can change Waffle flag course override", "content_type": 287, "codename": "change_waffleflagcourseoverridemodel"}}, {"model": "auth.permission", "pk": 866, "fields": {"name": "Can delete Waffle flag course override", "content_type": 287, "codename": "delete_waffleflagcourseoverridemodel"}}, {"model": "auth.permission", "pk": 867, "fields": {"name": "Can add Schedule", "content_type": 288, "codename": "add_schedule"}}, {"model": "auth.permission", "pk": 868, "fields": {"name": "Can change Schedule", "content_type": 288, "codename": "change_schedule"}}, {"model": "auth.permission", "pk": 869, "fields": {"name": "Can delete Schedule", "content_type": 288, "codename": "delete_schedule"}}, {"model": "auth.permission", "pk": 870, "fields": {"name": "Can add schedule config", "content_type": 289, "codename": "add_scheduleconfig"}}, {"model": "auth.permission", "pk": 871, "fields": {"name": "Can change schedule config", "content_type": 289, "codename": "change_scheduleconfig"}}, {"model": "auth.permission", "pk": 872, "fields": {"name": "Can delete schedule config", "content_type": 289, "codename": "delete_scheduleconfig"}}, {"model": "auth.permission", "pk": 873, "fields": {"name": "Can add schedule experience", "content_type": 290, "codename": "add_scheduleexperience"}}, {"model": "auth.permission", "pk": 874, "fields": {"name": "Can change schedule experience", "content_type": 290, "codename": "change_scheduleexperience"}}, {"model": "auth.permission", "pk": 875, "fields": {"name": "Can delete schedule experience", "content_type": 290, "codename": "delete_scheduleexperience"}}, {"model": "auth.permission", "pk": 876, "fields": {"name": "Can add course goal", "content_type": 291, "codename": "add_coursegoal"}}, {"model": "auth.permission", "pk": 877, "fields": {"name": "Can change course goal", "content_type": 291, "codename": "change_coursegoal"}}, {"model": "auth.permission", "pk": 878, "fields": {"name": "Can delete course goal", "content_type": 291, "codename": "delete_coursegoal"}}, {"model": "auth.permission", "pk": 879, "fields": {"name": "Can add block completion", "content_type": 292, "codename": "add_blockcompletion"}}, {"model": "auth.permission", "pk": 880, "fields": {"name": "Can change block completion", "content_type": 292, "codename": "change_blockcompletion"}}, {"model": "auth.permission", "pk": 881, "fields": {"name": "Can delete block completion", "content_type": 292, "codename": "delete_blockcompletion"}}, {"model": "auth.permission", "pk": 882, "fields": {"name": "Can add Experiment Data", "content_type": 293, "codename": "add_experimentdata"}}, {"model": "auth.permission", "pk": 883, "fields": {"name": "Can change Experiment Data", "content_type": 293, "codename": "change_experimentdata"}}, {"model": "auth.permission", "pk": 884, "fields": {"name": "Can delete Experiment Data", "content_type": 293, "codename": "delete_experimentdata"}}, {"model": "auth.permission", "pk": 885, "fields": {"name": "Can add Experiment Key-Value Pair", "content_type": 294, "codename": "add_experimentkeyvalue"}}, {"model": "auth.permission", "pk": 886, "fields": {"name": "Can change Experiment Key-Value Pair", "content_type": 294, "codename": "change_experimentkeyvalue"}}, {"model": "auth.permission", "pk": 887, "fields": {"name": "Can delete Experiment Key-Value Pair", "content_type": 294, "codename": "delete_experimentkeyvalue"}}, {"model": "auth.permission", "pk": 888, "fields": {"name": "Can add proctored exam", "content_type": 295, "codename": "add_proctoredexam"}}, {"model": "auth.permission", "pk": 889, "fields": {"name": "Can change proctored exam", "content_type": 295, "codename": "change_proctoredexam"}}, {"model": "auth.permission", "pk": 890, "fields": {"name": "Can delete proctored exam", "content_type": 295, "codename": "delete_proctoredexam"}}, {"model": "auth.permission", "pk": 891, "fields": {"name": "Can add Proctored exam review policy", "content_type": 296, "codename": "add_proctoredexamreviewpolicy"}}, {"model": "auth.permission", "pk": 892, "fields": {"name": "Can change Proctored exam review policy", "content_type": 296, "codename": "change_proctoredexamreviewpolicy"}}, {"model": "auth.permission", "pk": 893, "fields": {"name": "Can delete Proctored exam review policy", "content_type": 296, "codename": "delete_proctoredexamreviewpolicy"}}, {"model": "auth.permission", "pk": 894, "fields": {"name": "Can add proctored exam review policy history", "content_type": 297, "codename": "add_proctoredexamreviewpolicyhistory"}}, {"model": "auth.permission", "pk": 895, "fields": {"name": "Can change proctored exam review policy history", "content_type": 297, "codename": "change_proctoredexamreviewpolicyhistory"}}, {"model": "auth.permission", "pk": 896, "fields": {"name": "Can delete proctored exam review policy history", "content_type": 297, "codename": "delete_proctoredexamreviewpolicyhistory"}}, {"model": "auth.permission", "pk": 897, "fields": {"name": "Can add proctored exam attempt", "content_type": 298, "codename": "add_proctoredexamstudentattempt"}}, {"model": "auth.permission", "pk": 898, "fields": {"name": "Can change proctored exam attempt", "content_type": 298, "codename": "change_proctoredexamstudentattempt"}}, {"model": "auth.permission", "pk": 899, "fields": {"name": "Can delete proctored exam attempt", "content_type": 298, "codename": "delete_proctoredexamstudentattempt"}}, {"model": "auth.permission", "pk": 900, "fields": {"name": "Can add proctored exam attempt history", "content_type": 299, "codename": "add_proctoredexamstudentattempthistory"}}, {"model": "auth.permission", "pk": 901, "fields": {"name": "Can change proctored exam attempt history", "content_type": 299, "codename": "change_proctoredexamstudentattempthistory"}}, {"model": "auth.permission", "pk": 902, "fields": {"name": "Can delete proctored exam attempt history", "content_type": 299, "codename": "delete_proctoredexamstudentattempthistory"}}, {"model": "auth.permission", "pk": 903, "fields": {"name": "Can add proctored allowance", "content_type": 300, "codename": "add_proctoredexamstudentallowance"}}, {"model": "auth.permission", "pk": 904, "fields": {"name": "Can change proctored allowance", "content_type": 300, "codename": "change_proctoredexamstudentallowance"}}, {"model": "auth.permission", "pk": 905, "fields": {"name": "Can delete proctored allowance", "content_type": 300, "codename": "delete_proctoredexamstudentallowance"}}, {"model": "auth.permission", "pk": 906, "fields": {"name": "Can add proctored allowance history", "content_type": 301, "codename": "add_proctoredexamstudentallowancehistory"}}, {"model": "auth.permission", "pk": 907, "fields": {"name": "Can change proctored allowance history", "content_type": 301, "codename": "change_proctoredexamstudentallowancehistory"}}, {"model": "auth.permission", "pk": 908, "fields": {"name": "Can delete proctored allowance history", "content_type": 301, "codename": "delete_proctoredexamstudentallowancehistory"}}, {"model": "auth.permission", "pk": 909, "fields": {"name": "Can add Proctored exam software secure review", "content_type": 302, "codename": "add_proctoredexamsoftwaresecurereview"}}, {"model": "auth.permission", "pk": 910, "fields": {"name": "Can change Proctored exam software secure review", "content_type": 302, "codename": "change_proctoredexamsoftwaresecurereview"}}, {"model": "auth.permission", "pk": 911, "fields": {"name": "Can delete Proctored exam software secure review", "content_type": 302, "codename": "delete_proctoredexamsoftwaresecurereview"}}, {"model": "auth.permission", "pk": 912, "fields": {"name": "Can add Proctored exam review archive", "content_type": 303, "codename": "add_proctoredexamsoftwaresecurereviewhistory"}}, {"model": "auth.permission", "pk": 913, "fields": {"name": "Can change Proctored exam review archive", "content_type": 303, "codename": "change_proctoredexamsoftwaresecurereviewhistory"}}, {"model": "auth.permission", "pk": 914, "fields": {"name": "Can delete Proctored exam review archive", "content_type": 303, "codename": "delete_proctoredexamsoftwaresecurereviewhistory"}}, {"model": "auth.permission", "pk": 915, "fields": {"name": "Can add proctored exam software secure comment", "content_type": 304, "codename": "add_proctoredexamsoftwaresecurecomment"}}, {"model": "auth.permission", "pk": 916, "fields": {"name": "Can change proctored exam software secure comment", "content_type": 304, "codename": "change_proctoredexamsoftwaresecurecomment"}}, {"model": "auth.permission", "pk": 917, "fields": {"name": "Can delete proctored exam software secure comment", "content_type": 304, "codename": "delete_proctoredexamsoftwaresecurecomment"}}, {"model": "auth.permission", "pk": 918, "fields": {"name": "Can add organization", "content_type": 305, "codename": "add_organization"}}, {"model": "auth.permission", "pk": 919, "fields": {"name": "Can change organization", "content_type": 305, "codename": "change_organization"}}, {"model": "auth.permission", "pk": 920, "fields": {"name": "Can delete organization", "content_type": 305, "codename": "delete_organization"}}, {"model": "auth.permission", "pk": 921, "fields": {"name": "Can add Link Course", "content_type": 306, "codename": "add_organizationcourse"}}, {"model": "auth.permission", "pk": 922, "fields": {"name": "Can change Link Course", "content_type": 306, "codename": "change_organizationcourse"}}, {"model": "auth.permission", "pk": 923, "fields": {"name": "Can delete Link Course", "content_type": 306, "codename": "delete_organizationcourse"}}, {"model": "auth.permission", "pk": 924, "fields": {"name": "Can add historical Enterprise Customer", "content_type": 307, "codename": "add_historicalenterprisecustomer"}}, {"model": "auth.permission", "pk": 925, "fields": {"name": "Can change historical Enterprise Customer", "content_type": 307, "codename": "change_historicalenterprisecustomer"}}, {"model": "auth.permission", "pk": 926, "fields": {"name": "Can delete historical Enterprise Customer", "content_type": 307, "codename": "delete_historicalenterprisecustomer"}}, {"model": "auth.permission", "pk": 927, "fields": {"name": "Can add Enterprise Customer", "content_type": 308, "codename": "add_enterprisecustomer"}}, {"model": "auth.permission", "pk": 928, "fields": {"name": "Can change Enterprise Customer", "content_type": 308, "codename": "change_enterprisecustomer"}}, {"model": "auth.permission", "pk": 929, "fields": {"name": "Can delete Enterprise Customer", "content_type": 308, "codename": "delete_enterprisecustomer"}}, {"model": "auth.permission", "pk": 930, "fields": {"name": "Can add Enterprise Customer Learner", "content_type": 309, "codename": "add_enterprisecustomeruser"}}, {"model": "auth.permission", "pk": 931, "fields": {"name": "Can change Enterprise Customer Learner", "content_type": 309, "codename": "change_enterprisecustomeruser"}}, {"model": "auth.permission", "pk": 932, "fields": {"name": "Can delete Enterprise Customer Learner", "content_type": 309, "codename": "delete_enterprisecustomeruser"}}, {"model": "auth.permission", "pk": 933, "fields": {"name": "Can add pending enterprise customer user", "content_type": 310, "codename": "add_pendingenterprisecustomeruser"}}, {"model": "auth.permission", "pk": 934, "fields": {"name": "Can change pending enterprise customer user", "content_type": 310, "codename": "change_pendingenterprisecustomeruser"}}, {"model": "auth.permission", "pk": 935, "fields": {"name": "Can delete pending enterprise customer user", "content_type": 310, "codename": "delete_pendingenterprisecustomeruser"}}, {"model": "auth.permission", "pk": 936, "fields": {"name": "Can add pending enrollment", "content_type": 311, "codename": "add_pendingenrollment"}}, {"model": "auth.permission", "pk": 937, "fields": {"name": "Can change pending enrollment", "content_type": 311, "codename": "change_pendingenrollment"}}, {"model": "auth.permission", "pk": 938, "fields": {"name": "Can delete pending enrollment", "content_type": 311, "codename": "delete_pendingenrollment"}}, {"model": "auth.permission", "pk": 939, "fields": {"name": "Can add Branding Configuration", "content_type": 312, "codename": "add_enterprisecustomerbrandingconfiguration"}}, {"model": "auth.permission", "pk": 940, "fields": {"name": "Can change Branding Configuration", "content_type": 312, "codename": "change_enterprisecustomerbrandingconfiguration"}}, {"model": "auth.permission", "pk": 941, "fields": {"name": "Can delete Branding Configuration", "content_type": 312, "codename": "delete_enterprisecustomerbrandingconfiguration"}}, {"model": "auth.permission", "pk": 942, "fields": {"name": "Can add enterprise customer identity provider", "content_type": 313, "codename": "add_enterprisecustomeridentityprovider"}}, {"model": "auth.permission", "pk": 943, "fields": {"name": "Can change enterprise customer identity provider", "content_type": 313, "codename": "change_enterprisecustomeridentityprovider"}}, {"model": "auth.permission", "pk": 944, "fields": {"name": "Can delete enterprise customer identity provider", "content_type": 313, "codename": "delete_enterprisecustomeridentityprovider"}}, {"model": "auth.permission", "pk": 945, "fields": {"name": "Can add historical Enterprise Customer Entitlement", "content_type": 314, "codename": "add_historicalenterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 946, "fields": {"name": "Can change historical Enterprise Customer Entitlement", "content_type": 314, "codename": "change_historicalenterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 947, "fields": {"name": "Can delete historical Enterprise Customer Entitlement", "content_type": 314, "codename": "delete_historicalenterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 948, "fields": {"name": "Can add Enterprise Customer Entitlement", "content_type": 315, "codename": "add_enterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 949, "fields": {"name": "Can change Enterprise Customer Entitlement", "content_type": 315, "codename": "change_enterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 950, "fields": {"name": "Can delete Enterprise Customer Entitlement", "content_type": 315, "codename": "delete_enterprisecustomerentitlement"}}, {"model": "auth.permission", "pk": 951, "fields": {"name": "Can add historical enterprise course enrollment", "content_type": 316, "codename": "add_historicalenterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 952, "fields": {"name": "Can change historical enterprise course enrollment", "content_type": 316, "codename": "change_historicalenterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 953, "fields": {"name": "Can delete historical enterprise course enrollment", "content_type": 316, "codename": "delete_historicalenterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 954, "fields": {"name": "Can add enterprise course enrollment", "content_type": 317, "codename": "add_enterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 955, "fields": {"name": "Can change enterprise course enrollment", "content_type": 317, "codename": "change_enterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 956, "fields": {"name": "Can delete enterprise course enrollment", "content_type": 317, "codename": "delete_enterprisecourseenrollment"}}, {"model": "auth.permission", "pk": 957, "fields": {"name": "Can add historical Enterprise Customer Catalog", "content_type": 318, "codename": "add_historicalenterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 958, "fields": {"name": "Can change historical Enterprise Customer Catalog", "content_type": 318, "codename": "change_historicalenterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 959, "fields": {"name": "Can delete historical Enterprise Customer Catalog", "content_type": 318, "codename": "delete_historicalenterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 960, "fields": {"name": "Can add Enterprise Customer Catalog", "content_type": 319, "codename": "add_enterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 961, "fields": {"name": "Can change Enterprise Customer Catalog", "content_type": 319, "codename": "change_enterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 962, "fields": {"name": "Can delete Enterprise Customer Catalog", "content_type": 319, "codename": "delete_enterprisecustomercatalog"}}, {"model": "auth.permission", "pk": 963, "fields": {"name": "Can add historical enrollment notification email template", "content_type": 320, "codename": "add_historicalenrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 964, "fields": {"name": "Can change historical enrollment notification email template", "content_type": 320, "codename": "change_historicalenrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 965, "fields": {"name": "Can delete historical enrollment notification email template", "content_type": 320, "codename": "delete_historicalenrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 966, "fields": {"name": "Can add enrollment notification email template", "content_type": 321, "codename": "add_enrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 967, "fields": {"name": "Can change enrollment notification email template", "content_type": 321, "codename": "change_enrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 968, "fields": {"name": "Can delete enrollment notification email template", "content_type": 321, "codename": "delete_enrollmentnotificationemailtemplate"}}, {"model": "auth.permission", "pk": 969, "fields": {"name": "Can add enterprise customer reporting configuration", "content_type": 322, "codename": "add_enterprisecustomerreportingconfiguration"}}, {"model": "auth.permission", "pk": 970, "fields": {"name": "Can change enterprise customer reporting configuration", "content_type": 322, "codename": "change_enterprisecustomerreportingconfiguration"}}, {"model": "auth.permission", "pk": 971, "fields": {"name": "Can delete enterprise customer reporting configuration", "content_type": 322, "codename": "delete_enterprisecustomerreportingconfiguration"}}, {"model": "auth.permission", "pk": 972, "fields": {"name": "Can add historical Data Sharing Consent Record", "content_type": 323, "codename": "add_historicaldatasharingconsent"}}, {"model": "auth.permission", "pk": 973, "fields": {"name": "Can change historical Data Sharing Consent Record", "content_type": 323, "codename": "change_historicaldatasharingconsent"}}, {"model": "auth.permission", "pk": 974, "fields": {"name": "Can delete historical Data Sharing Consent Record", "content_type": 323, "codename": "delete_historicaldatasharingconsent"}}, {"model": "auth.permission", "pk": 975, "fields": {"name": "Can add Data Sharing Consent Record", "content_type": 324, "codename": "add_datasharingconsent"}}, {"model": "auth.permission", "pk": 976, "fields": {"name": "Can change Data Sharing Consent Record", "content_type": 324, "codename": "change_datasharingconsent"}}, {"model": "auth.permission", "pk": 977, "fields": {"name": "Can delete Data Sharing Consent Record", "content_type": 324, "codename": "delete_datasharingconsent"}}, {"model": "auth.permission", "pk": 978, "fields": {"name": "Can add learner data transmission audit", "content_type": 325, "codename": "add_learnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 979, "fields": {"name": "Can change learner data transmission audit", "content_type": 325, "codename": "change_learnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 980, "fields": {"name": "Can delete learner data transmission audit", "content_type": 325, "codename": "delete_learnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 981, "fields": {"name": "Can add catalog transmission audit", "content_type": 326, "codename": "add_catalogtransmissionaudit"}}, {"model": "auth.permission", "pk": 982, "fields": {"name": "Can change catalog transmission audit", "content_type": 326, "codename": "change_catalogtransmissionaudit"}}, {"model": "auth.permission", "pk": 983, "fields": {"name": "Can delete catalog transmission audit", "content_type": 326, "codename": "delete_catalogtransmissionaudit"}}, {"model": "auth.permission", "pk": 984, "fields": {"name": "Can add degreed global configuration", "content_type": 327, "codename": "add_degreedglobalconfiguration"}}, {"model": "auth.permission", "pk": 985, "fields": {"name": "Can change degreed global configuration", "content_type": 327, "codename": "change_degreedglobalconfiguration"}}, {"model": "auth.permission", "pk": 986, "fields": {"name": "Can delete degreed global configuration", "content_type": 327, "codename": "delete_degreedglobalconfiguration"}}, {"model": "auth.permission", "pk": 987, "fields": {"name": "Can add historical degreed enterprise customer configuration", "content_type": 328, "codename": "add_historicaldegreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 988, "fields": {"name": "Can change historical degreed enterprise customer configuration", "content_type": 328, "codename": "change_historicaldegreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 989, "fields": {"name": "Can delete historical degreed enterprise customer configuration", "content_type": 328, "codename": "delete_historicaldegreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 990, "fields": {"name": "Can add degreed enterprise customer configuration", "content_type": 329, "codename": "add_degreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 991, "fields": {"name": "Can change degreed enterprise customer configuration", "content_type": 329, "codename": "change_degreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 992, "fields": {"name": "Can delete degreed enterprise customer configuration", "content_type": 329, "codename": "delete_degreedenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 993, "fields": {"name": "Can add degreed learner data transmission audit", "content_type": 330, "codename": "add_degreedlearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 994, "fields": {"name": "Can change degreed learner data transmission audit", "content_type": 330, "codename": "change_degreedlearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 995, "fields": {"name": "Can delete degreed learner data transmission audit", "content_type": 330, "codename": "delete_degreedlearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 996, "fields": {"name": "Can add sap success factors global configuration", "content_type": 331, "codename": "add_sapsuccessfactorsglobalconfiguration"}}, {"model": "auth.permission", "pk": 997, "fields": {"name": "Can change sap success factors global configuration", "content_type": 331, "codename": "change_sapsuccessfactorsglobalconfiguration"}}, {"model": "auth.permission", "pk": 998, "fields": {"name": "Can delete sap success factors global configuration", "content_type": 331, "codename": "delete_sapsuccessfactorsglobalconfiguration"}}, {"model": "auth.permission", "pk": 999, "fields": {"name": "Can add historical sap success factors enterprise customer configuration", "content_type": 332, "codename": "add_historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1000, "fields": {"name": "Can change historical sap success factors enterprise customer configuration", "content_type": 332, "codename": "change_historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1001, "fields": {"name": "Can delete historical sap success factors enterprise customer configuration", "content_type": 332, "codename": "delete_historicalsapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1002, "fields": {"name": "Can add sap success factors enterprise customer configuration", "content_type": 333, "codename": "add_sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1003, "fields": {"name": "Can change sap success factors enterprise customer configuration", "content_type": 333, "codename": "change_sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1004, "fields": {"name": "Can delete sap success factors enterprise customer configuration", "content_type": 333, "codename": "delete_sapsuccessfactorsenterprisecustomerconfiguration"}}, {"model": "auth.permission", "pk": 1005, "fields": {"name": "Can add sap success factors learner data transmission audit", "content_type": 334, "codename": "add_sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 1006, "fields": {"name": "Can change sap success factors learner data transmission audit", "content_type": 334, "codename": "change_sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 1007, "fields": {"name": "Can delete sap success factors learner data transmission audit", "content_type": 334, "codename": "delete_sapsuccessfactorslearnerdatatransmissionaudit"}}, {"model": "auth.permission", "pk": 1008, "fields": {"name": "Can add custom course for ed x", "content_type": 335, "codename": "add_customcourseforedx"}}, {"model": "auth.permission", "pk": 1009, "fields": {"name": "Can change custom course for ed x", "content_type": 335, "codename": "change_customcourseforedx"}}, {"model": "auth.permission", "pk": 1010, "fields": {"name": "Can delete custom course for ed x", "content_type": 335, "codename": "delete_customcourseforedx"}}, {"model": "auth.permission", "pk": 1011, "fields": {"name": "Can add ccx field override", "content_type": 336, "codename": "add_ccxfieldoverride"}}, {"model": "auth.permission", "pk": 1012, "fields": {"name": "Can change ccx field override", "content_type": 336, "codename": "change_ccxfieldoverride"}}, {"model": "auth.permission", "pk": 1013, "fields": {"name": "Can delete ccx field override", "content_type": 336, "codename": "delete_ccxfieldoverride"}}, {"model": "auth.permission", "pk": 1014, "fields": {"name": "Can add CCX Connector", "content_type": 337, "codename": "add_ccxcon"}}, {"model": "auth.permission", "pk": 1015, "fields": {"name": "Can change CCX Connector", "content_type": 337, "codename": "change_ccxcon"}}, {"model": "auth.permission", "pk": 1016, "fields": {"name": "Can delete CCX Connector", "content_type": 337, "codename": "delete_ccxcon"}}, {"model": "auth.permission", "pk": 1017, "fields": {"name": "Can add student module history extended", "content_type": 338, "codename": "add_studentmodulehistoryextended"}}, {"model": "auth.permission", "pk": 1018, "fields": {"name": "Can change student module history extended", "content_type": 338, "codename": "change_studentmodulehistoryextended"}}, {"model": "auth.permission", "pk": 1019, "fields": {"name": "Can delete student module history extended", "content_type": 338, "codename": "delete_studentmodulehistoryextended"}}, {"model": "auth.permission", "pk": 1020, "fields": {"name": "Can add video upload config", "content_type": 339, "codename": "add_videouploadconfig"}}, {"model": "auth.permission", "pk": 1021, "fields": {"name": "Can change video upload config", "content_type": 339, "codename": "change_videouploadconfig"}}, {"model": "auth.permission", "pk": 1022, "fields": {"name": "Can delete video upload config", "content_type": 339, "codename": "delete_videouploadconfig"}}, {"model": "auth.permission", "pk": 1023, "fields": {"name": "Can add push notification config", "content_type": 340, "codename": "add_pushnotificationconfig"}}, {"model": "auth.permission", "pk": 1024, "fields": {"name": "Can change push notification config", "content_type": 340, "codename": "change_pushnotificationconfig"}}, {"model": "auth.permission", "pk": 1025, "fields": {"name": "Can delete push notification config", "content_type": 340, "codename": "delete_pushnotificationconfig"}}, {"model": "auth.permission", "pk": 1026, "fields": {"name": "Can add new assets page flag", "content_type": 341, "codename": "add_newassetspageflag"}}, {"model": "auth.permission", "pk": 1027, "fields": {"name": "Can change new assets page flag", "content_type": 341, "codename": "change_newassetspageflag"}}, {"model": "auth.permission", "pk": 1028, "fields": {"name": "Can delete new assets page flag", "content_type": 341, "codename": "delete_newassetspageflag"}}, {"model": "auth.permission", "pk": 1029, "fields": {"name": "Can add course new assets page flag", "content_type": 342, "codename": "add_coursenewassetspageflag"}}, {"model": "auth.permission", "pk": 1030, "fields": {"name": "Can change course new assets page flag", "content_type": 342, "codename": "change_coursenewassetspageflag"}}, {"model": "auth.permission", "pk": 1031, "fields": {"name": "Can delete course new assets page flag", "content_type": 342, "codename": "delete_coursenewassetspageflag"}}, {"model": "auth.permission", "pk": 1032, "fields": {"name": "Can add course creator", "content_type": 343, "codename": "add_coursecreator"}}, {"model": "auth.permission", "pk": 1033, "fields": {"name": "Can change course creator", "content_type": 343, "codename": "change_coursecreator"}}, {"model": "auth.permission", "pk": 1034, "fields": {"name": "Can delete course creator", "content_type": 343, "codename": "delete_coursecreator"}}, {"model": "auth.permission", "pk": 1035, "fields": {"name": "Can add studio config", "content_type": 344, "codename": "add_studioconfig"}}, {"model": "auth.permission", "pk": 1036, "fields": {"name": "Can change studio config", "content_type": 344, "codename": "change_studioconfig"}}, {"model": "auth.permission", "pk": 1037, "fields": {"name": "Can delete studio config", "content_type": 344, "codename": "delete_studioconfig"}}, {"model": "auth.permission", "pk": 1038, "fields": {"name": "Can add course edit lti fields enabled flag", "content_type": 345, "codename": "add_courseeditltifieldsenabledflag"}}, {"model": "auth.permission", "pk": 1039, "fields": {"name": "Can change course edit lti fields enabled flag", "content_type": 345, "codename": "change_courseeditltifieldsenabledflag"}}, {"model": "auth.permission", "pk": 1040, "fields": {"name": "Can delete course edit lti fields enabled flag", "content_type": 345, "codename": "delete_courseeditltifieldsenabledflag"}}, {"model": "auth.permission", "pk": 1041, "fields": {"name": "Can add tag category", "content_type": 346, "codename": "add_tagcategories"}}, {"model": "auth.permission", "pk": 1042, "fields": {"name": "Can change tag category", "content_type": 346, "codename": "change_tagcategories"}}, {"model": "auth.permission", "pk": 1043, "fields": {"name": "Can delete tag category", "content_type": 346, "codename": "delete_tagcategories"}}, {"model": "auth.permission", "pk": 1044, "fields": {"name": "Can add available tag value", "content_type": 347, "codename": "add_tagavailablevalues"}}, {"model": "auth.permission", "pk": 1045, "fields": {"name": "Can change available tag value", "content_type": 347, "codename": "change_tagavailablevalues"}}, {"model": "auth.permission", "pk": 1046, "fields": {"name": "Can delete available tag value", "content_type": 347, "codename": "delete_tagavailablevalues"}}, {"model": "auth.permission", "pk": 1047, "fields": {"name": "Can add user task status", "content_type": 348, "codename": "add_usertaskstatus"}}, {"model": "auth.permission", "pk": 1048, "fields": {"name": "Can change user task status", "content_type": 348, "codename": "change_usertaskstatus"}}, {"model": "auth.permission", "pk": 1049, "fields": {"name": "Can delete user task status", "content_type": 348, "codename": "delete_usertaskstatus"}}, {"model": "auth.permission", "pk": 1050, "fields": {"name": "Can add user task artifact", "content_type": 349, "codename": "add_usertaskartifact"}}, {"model": "auth.permission", "pk": 1051, "fields": {"name": "Can change user task artifact", "content_type": 349, "codename": "change_usertaskartifact"}}, {"model": "auth.permission", "pk": 1052, "fields": {"name": "Can delete user task artifact", "content_type": 349, "codename": "delete_usertaskartifact"}}, {"model": "auth.permission", "pk": 1053, "fields": {"name": "Can add course entitlement policy", "content_type": 350, "codename": "add_courseentitlementpolicy"}}, {"model": "auth.permission", "pk": 1054, "fields": {"name": "Can change course entitlement policy", "content_type": 350, "codename": "change_courseentitlementpolicy"}}, {"model": "auth.permission", "pk": 1055, "fields": {"name": "Can delete course entitlement policy", "content_type": 350, "codename": "delete_courseentitlementpolicy"}}, {"model": "auth.permission", "pk": 1056, "fields": {"name": "Can add course entitlement support detail", "content_type": 351, "codename": "add_courseentitlementsupportdetail"}}, {"model": "auth.permission", "pk": 1057, "fields": {"name": "Can change course entitlement support detail", "content_type": 351, "codename": "change_courseentitlementsupportdetail"}}, {"model": "auth.permission", "pk": 1058, "fields": {"name": "Can delete course entitlement support detail", "content_type": 351, "codename": "delete_courseentitlementsupportdetail"}}, {"model": "auth.permission", "pk": 1059, "fields": {"name": "Can add content metadata item transmission", "content_type": 352, "codename": "add_contentmetadataitemtransmission"}}, {"model": "auth.permission", "pk": 1060, "fields": {"name": "Can change content metadata item transmission", "content_type": 352, "codename": "change_contentmetadataitemtransmission"}}, {"model": "auth.permission", "pk": 1061, "fields": {"name": "Can delete content metadata item transmission", "content_type": 352, "codename": "delete_contentmetadataitemtransmission"}}, {"model": "auth.permission", "pk": 1062, "fields": {"name": "Can add transcript migration setting", "content_type": 353, "codename": "add_transcriptmigrationsetting"}}, {"model": "auth.permission", "pk": 1063, "fields": {"name": "Can change transcript migration setting", "content_type": 353, "codename": "change_transcriptmigrationsetting"}}, {"model": "auth.permission", "pk": 1064, "fields": {"name": "Can delete transcript migration setting", "content_type": 353, "codename": "delete_transcriptmigrationsetting"}}, {"model": "auth.permission", "pk": 1065, "fields": {"name": "Can add sso verification", "content_type": 354, "codename": "add_ssoverification"}}, {"model": "auth.permission", "pk": 1066, "fields": {"name": "Can change sso verification", "content_type": 354, "codename": "change_ssoverification"}}, {"model": "auth.permission", "pk": 1067, "fields": {"name": "Can delete sso verification", "content_type": 354, "codename": "delete_ssoverification"}}, {"model": "auth.permission", "pk": 1068, "fields": {"name": "Can add User Retirement Status", "content_type": 355, "codename": "add_userretirementstatus"}}, {"model": "auth.permission", "pk": 1069, "fields": {"name": "Can change User Retirement Status", "content_type": 355, "codename": "change_userretirementstatus"}}, {"model": "auth.permission", "pk": 1070, "fields": {"name": "Can delete User Retirement Status", "content_type": 355, "codename": "delete_userretirementstatus"}}, {"model": "auth.permission", "pk": 1071, "fields": {"name": "Can add retirement state", "content_type": 356, "codename": "add_retirementstate"}}, {"model": "auth.permission", "pk": 1072, "fields": {"name": "Can change retirement state", "content_type": 356, "codename": "change_retirementstate"}}, {"model": "auth.permission", "pk": 1073, "fields": {"name": "Can delete retirement state", "content_type": 356, "codename": "delete_retirementstate"}}, {"model": "auth.permission", "pk": 1074, "fields": {"name": "Can add data sharing consent text overrides", "content_type": 357, "codename": "add_datasharingconsenttextoverrides"}}, {"model": "auth.permission", "pk": 1075, "fields": {"name": "Can change data sharing consent text overrides", "content_type": 357, "codename": "change_datasharingconsenttextoverrides"}}, {"model": "auth.permission", "pk": 1076, "fields": {"name": "Can delete data sharing consent text overrides", "content_type": 357, "codename": "delete_datasharingconsenttextoverrides"}}, {"model": "auth.permission", "pk": 1077, "fields": {"name": "Can add User Retirement Request", "content_type": 358, "codename": "add_userretirementrequest"}}, {"model": "auth.permission", "pk": 1078, "fields": {"name": "Can change User Retirement Request", "content_type": 358, "codename": "change_userretirementrequest"}}, {"model": "auth.permission", "pk": 1079, "fields": {"name": "Can delete User Retirement Request", "content_type": 358, "codename": "delete_userretirementrequest"}}, {"model": "auth.permission", "pk": 1080, "fields": {"name": "Can add discussions id mapping", "content_type": 359, "codename": "add_discussionsidmapping"}}, {"model": "auth.permission", "pk": 1081, "fields": {"name": "Can change discussions id mapping", "content_type": 359, "codename": "change_discussionsidmapping"}}, {"model": "auth.permission", "pk": 1082, "fields": {"name": "Can delete discussions id mapping", "content_type": 359, "codename": "delete_discussionsidmapping"}}, {"model": "auth.permission", "pk": 1083, "fields": {"name": "Can add scoped application", "content_type": 360, "codename": "add_scopedapplication"}}, {"model": "auth.permission", "pk": 1084, "fields": {"name": "Can change scoped application", "content_type": 360, "codename": "change_scopedapplication"}}, {"model": "auth.permission", "pk": 1085, "fields": {"name": "Can delete scoped application", "content_type": 360, "codename": "delete_scopedapplication"}}, {"model": "auth.permission", "pk": 1086, "fields": {"name": "Can add scoped application organization", "content_type": 361, "codename": "add_scopedapplicationorganization"}}, {"model": "auth.permission", "pk": 1087, "fields": {"name": "Can change scoped application organization", "content_type": 361, "codename": "change_scopedapplicationorganization"}}, {"model": "auth.permission", "pk": 1088, "fields": {"name": "Can delete scoped application organization", "content_type": 361, "codename": "delete_scopedapplicationorganization"}}, {"model": "auth.permission", "pk": 1089, "fields": {"name": "Can add User Retirement Reporting Status", "content_type": 362, "codename": "add_userretirementpartnerreportingstatus"}}, {"model": "auth.permission", "pk": 1090, "fields": {"name": "Can change User Retirement Reporting Status", "content_type": 362, "codename": "change_userretirementpartnerreportingstatus"}}, {"model": "auth.permission", "pk": 1091, "fields": {"name": "Can delete User Retirement Reporting Status", "content_type": 362, "codename": "delete_userretirementpartnerreportingstatus"}}, {"model": "auth.permission", "pk": 1092, "fields": {"name": "Can add manual verification", "content_type": 363, "codename": "add_manualverification"}}, {"model": "auth.permission", "pk": 1093, "fields": {"name": "Can change manual verification", "content_type": 363, "codename": "change_manualverification"}}, {"model": "auth.permission", "pk": 1094, "fields": {"name": "Can delete manual verification", "content_type": 363, "codename": "delete_manualverification"}}, {"model": "auth.permission", "pk": 1095, "fields": {"name": "Can add application organization", "content_type": 364, "codename": "add_applicationorganization"}}, {"model": "auth.permission", "pk": 1096, "fields": {"name": "Can change application organization", "content_type": 364, "codename": "change_applicationorganization"}}, {"model": "auth.permission", "pk": 1097, "fields": {"name": "Can delete application organization", "content_type": 364, "codename": "delete_applicationorganization"}}, {"model": "auth.permission", "pk": 1098, "fields": {"name": "Can add application access", "content_type": 365, "codename": "add_applicationaccess"}}, {"model": "auth.permission", "pk": 1099, "fields": {"name": "Can change application access", "content_type": 365, "codename": "change_applicationaccess"}}, {"model": "auth.permission", "pk": 1100, "fields": {"name": "Can delete application access", "content_type": 365, "codename": "delete_applicationaccess"}}, {"model": "auth.permission", "pk": 1101, "fields": {"name": "Can add migration enqueued course", "content_type": 366, "codename": "add_migrationenqueuedcourse"}}, {"model": "auth.permission", "pk": 1102, "fields": {"name": "Can change migration enqueued course", "content_type": 366, "codename": "change_migrationenqueuedcourse"}}, {"model": "auth.permission", "pk": 1103, "fields": {"name": "Can delete migration enqueued course", "content_type": 366, "codename": "delete_migrationenqueuedcourse"}}, {"model": "auth.permission", "pk": 1104, "fields": {"name": "Can add xapilrs configuration", "content_type": 367, "codename": "add_xapilrsconfiguration"}}, {"model": "auth.permission", "pk": 1105, "fields": {"name": "Can change xapilrs configuration", "content_type": 367, "codename": "change_xapilrsconfiguration"}}, {"model": "auth.permission", "pk": 1106, "fields": {"name": "Can delete xapilrs configuration", "content_type": 367, "codename": "delete_xapilrsconfiguration"}}, {"model": "auth.permission", "pk": 1107, "fields": {"name": "Can add notify_credentials argument", "content_type": 368, "codename": "add_notifycredentialsconfig"}}, {"model": "auth.permission", "pk": 1108, "fields": {"name": "Can change notify_credentials argument", "content_type": 368, "codename": "change_notifycredentialsconfig"}}, {"model": "auth.permission", "pk": 1109, "fields": {"name": "Can delete notify_credentials argument", "content_type": 368, "codename": "delete_notifycredentialsconfig"}}, {"model": "auth.permission", "pk": 1110, "fields": {"name": "Can add updated course videos", "content_type": 369, "codename": "add_updatedcoursevideos"}}, {"model": "auth.permission", "pk": 1111, "fields": {"name": "Can change updated course videos", "content_type": 369, "codename": "change_updatedcoursevideos"}}, {"model": "auth.permission", "pk": 1112, "fields": {"name": "Can delete updated course videos", "content_type": 369, "codename": "delete_updatedcoursevideos"}}, {"model": "auth.permission", "pk": 1113, "fields": {"name": "Can add video thumbnail setting", "content_type": 370, "codename": "add_videothumbnailsetting"}}, {"model": "auth.permission", "pk": 1114, "fields": {"name": "Can change video thumbnail setting", "content_type": 370, "codename": "change_videothumbnailsetting"}}, {"model": "auth.permission", "pk": 1115, "fields": {"name": "Can delete video thumbnail setting", "content_type": 370, "codename": "delete_videothumbnailsetting"}}, {"model": "auth.permission", "pk": 1116, "fields": {"name": "Can add course duration limit config", "content_type": 371, "codename": "add_coursedurationlimitconfig"}}, {"model": "auth.permission", "pk": 1117, "fields": {"name": "Can change course duration limit config", "content_type": 371, "codename": "change_coursedurationlimitconfig"}}, {"model": "auth.permission", "pk": 1118, "fields": {"name": "Can delete course duration limit config", "content_type": 371, "codename": "delete_coursedurationlimitconfig"}}, {"model": "auth.permission", "pk": 1119, "fields": {"name": "Can add content type gating config", "content_type": 372, "codename": "add_contenttypegatingconfig"}}, {"model": "auth.permission", "pk": 1120, "fields": {"name": "Can change content type gating config", "content_type": 372, "codename": "change_contenttypegatingconfig"}}, {"model": "auth.permission", "pk": 1121, "fields": {"name": "Can delete content type gating config", "content_type": 372, "codename": "delete_contenttypegatingconfig"}}, {"model": "auth.permission", "pk": 1122, "fields": {"name": "Can add persistent subsection grade override history", "content_type": 373, "codename": "add_persistentsubsectiongradeoverridehistory"}}, {"model": "auth.permission", "pk": 1123, "fields": {"name": "Can change persistent subsection grade override history", "content_type": 373, "codename": "change_persistentsubsectiongradeoverridehistory"}}, {"model": "auth.permission", "pk": 1124, "fields": {"name": "Can delete persistent subsection grade override history", "content_type": 373, "codename": "delete_persistentsubsectiongradeoverridehistory"}}, {"model": "auth.permission", "pk": 1125, "fields": {"name": "Can add account recovery", "content_type": 374, "codename": "add_accountrecovery"}}, {"model": "auth.permission", "pk": 1126, "fields": {"name": "Can change account recovery", "content_type": 374, "codename": "change_accountrecovery"}}, {"model": "auth.permission", "pk": 1127, "fields": {"name": "Can delete account recovery", "content_type": 374, "codename": "delete_accountrecovery"}}, {"model": "auth.permission", "pk": 1128, "fields": {"name": "Can add Enterprise Customer Type", "content_type": 375, "codename": "add_enterprisecustomertype"}}, {"model": "auth.permission", "pk": 1129, "fields": {"name": "Can change Enterprise Customer Type", "content_type": 375, "codename": "change_enterprisecustomertype"}}, {"model": "auth.permission", "pk": 1130, "fields": {"name": "Can delete Enterprise Customer Type", "content_type": 375, "codename": "delete_enterprisecustomertype"}}, {"model": "auth.permission", "pk": 1131, "fields": {"name": "Can add pending secondary email change", "content_type": 376, "codename": "add_pendingsecondaryemailchange"}}, {"model": "auth.permission", "pk": 1132, "fields": {"name": "Can change pending secondary email change", "content_type": 376, "codename": "change_pendingsecondaryemailchange"}}, {"model": "auth.permission", "pk": 1133, "fields": {"name": "Can delete pending secondary email change", "content_type": 376, "codename": "delete_pendingsecondaryemailchange"}}, {"model": "auth.permission", "pk": 1134, "fields": {"name": "Can add lti consumer", "content_type": 377, "codename": "add_lticonsumer"}}, {"model": "auth.permission", "pk": 1135, "fields": {"name": "Can change lti consumer", "content_type": 377, "codename": "change_lticonsumer"}}, {"model": "auth.permission", "pk": 1136, "fields": {"name": "Can delete lti consumer", "content_type": 377, "codename": "delete_lticonsumer"}}, {"model": "auth.permission", "pk": 1137, "fields": {"name": "Can add graded assignment", "content_type": 378, "codename": "add_gradedassignment"}}, {"model": "auth.permission", "pk": 1138, "fields": {"name": "Can change graded assignment", "content_type": 378, "codename": "change_gradedassignment"}}, {"model": "auth.permission", "pk": 1139, "fields": {"name": "Can delete graded assignment", "content_type": 378, "codename": "delete_gradedassignment"}}, {"model": "auth.permission", "pk": 1140, "fields": {"name": "Can add lti user", "content_type": 379, "codename": "add_ltiuser"}}, {"model": "auth.permission", "pk": 1141, "fields": {"name": "Can change lti user", "content_type": 379, "codename": "change_ltiuser"}}, {"model": "auth.permission", "pk": 1142, "fields": {"name": "Can delete lti user", "content_type": 379, "codename": "delete_ltiuser"}}, {"model": "auth.permission", "pk": 1143, "fields": {"name": "Can add outcome service", "content_type": 380, "codename": "add_outcomeservice"}}, {"model": "auth.permission", "pk": 1144, "fields": {"name": "Can change outcome service", "content_type": 380, "codename": "change_outcomeservice"}}, {"model": "auth.permission", "pk": 1145, "fields": {"name": "Can delete outcome service", "content_type": 380, "codename": "delete_outcomeservice"}}, {"model": "auth.permission", "pk": 1146, "fields": {"name": "Can add system wide enterprise role", "content_type": 381, "codename": "add_systemwideenterpriserole"}}, {"model": "auth.permission", "pk": 1147, "fields": {"name": "Can change system wide enterprise role", "content_type": 381, "codename": "change_systemwideenterpriserole"}}, {"model": "auth.permission", "pk": 1148, "fields": {"name": "Can delete system wide enterprise role", "content_type": 381, "codename": "delete_systemwideenterpriserole"}}, {"model": "auth.permission", "pk": 1149, "fields": {"name": "Can add system wide enterprise user role assignment", "content_type": 382, "codename": "add_systemwideenterpriseuserroleassignment"}}, {"model": "auth.permission", "pk": 1150, "fields": {"name": "Can change system wide enterprise user role assignment", "content_type": 382, "codename": "change_systemwideenterpriseuserroleassignment"}}, {"model": "auth.permission", "pk": 1151, "fields": {"name": "Can delete system wide enterprise user role assignment", "content_type": 382, "codename": "delete_systemwideenterpriseuserroleassignment"}}, {"model": "auth.permission", "pk": 1152, "fields": {"name": "Can add announcement", "content_type": 383, "codename": "add_announcement"}}, {"model": "auth.permission", "pk": 1153, "fields": {"name": "Can change announcement", "content_type": 383, "codename": "change_announcement"}}, {"model": "auth.permission", "pk": 1154, "fields": {"name": "Can delete announcement", "content_type": 383, "codename": "delete_announcement"}}, {"model": "auth.permission", "pk": 2267, "fields": {"name": "Can add enterprise feature user role assignment", "content_type": 753, "codename": "add_enterprisefeatureuserroleassignment"}}, {"model": "auth.permission", "pk": 2268, "fields": {"name": "Can change enterprise feature user role assignment", "content_type": 753, "codename": "change_enterprisefeatureuserroleassignment"}}, {"model": "auth.permission", "pk": 2269, "fields": {"name": "Can delete enterprise feature user role assignment", "content_type": 753, "codename": "delete_enterprisefeatureuserroleassignment"}}, {"model": "auth.permission", "pk": 2270, "fields": {"name": "Can add enterprise feature role", "content_type": 754, "codename": "add_enterprisefeaturerole"}}, {"model": "auth.permission", "pk": 2271, "fields": {"name": "Can change enterprise feature role", "content_type": 754, "codename": "change_enterprisefeaturerole"}}, {"model": "auth.permission", "pk": 2272, "fields": {"name": "Can delete enterprise feature role", "content_type": 754, "codename": "delete_enterprisefeaturerole"}}, {"model": "auth.permission", "pk": 2273, "fields": {"name": "Can add program enrollment", "content_type": 755, "codename": "add_programenrollment"}}, {"model": "auth.permission", "pk": 2274, "fields": {"name": "Can change program enrollment", "content_type": 755, "codename": "change_programenrollment"}}, {"model": "auth.permission", "pk": 2275, "fields": {"name": "Can delete program enrollment", "content_type": 755, "codename": "delete_programenrollment"}}, {"model": "auth.permission", "pk": 2276, "fields": {"name": "Can add historical program enrollment", "content_type": 756, "codename": "add_historicalprogramenrollment"}}, {"model": "auth.permission", "pk": 2277, "fields": {"name": "Can change historical program enrollment", "content_type": 756, "codename": "change_historicalprogramenrollment"}}, {"model": "auth.permission", "pk": 2278, "fields": {"name": "Can delete historical program enrollment", "content_type": 756, "codename": "delete_historicalprogramenrollment"}}, {"model": "auth.permission", "pk": 2279, "fields": {"name": "Can add program course enrollment", "content_type": 757, "codename": "add_programcourseenrollment"}}, {"model": "auth.permission", "pk": 2280, "fields": {"name": "Can change program course enrollment", "content_type": 757, "codename": "change_programcourseenrollment"}}, {"model": "auth.permission", "pk": 2281, "fields": {"name": "Can delete program course enrollment", "content_type": 757, "codename": "delete_programcourseenrollment"}}, {"model": "auth.permission", "pk": 2282, "fields": {"name": "Can add historical program course enrollment", "content_type": 758, "codename": "add_historicalprogramcourseenrollment"}}, {"model": "auth.permission", "pk": 2283, "fields": {"name": "Can change historical program course enrollment", "content_type": 758, "codename": "change_historicalprogramcourseenrollment"}}, {"model": "auth.permission", "pk": 2284, "fields": {"name": "Can delete historical program course enrollment", "content_type": 758, "codename": "delete_historicalprogramcourseenrollment"}}, {"model": "auth.permission", "pk": 2285, "fields": {"name": "Can add content date", "content_type": 759, "codename": "add_contentdate"}}, {"model": "auth.permission", "pk": 2286, "fields": {"name": "Can change content date", "content_type": 759, "codename": "change_contentdate"}}, {"model": "auth.permission", "pk": 2287, "fields": {"name": "Can delete content date", "content_type": 759, "codename": "delete_contentdate"}}, {"model": "auth.permission", "pk": 2288, "fields": {"name": "Can add user date", "content_type": 760, "codename": "add_userdate"}}, {"model": "auth.permission", "pk": 2289, "fields": {"name": "Can change user date", "content_type": 760, "codename": "change_userdate"}}, {"model": "auth.permission", "pk": 2290, "fields": {"name": "Can delete user date", "content_type": 760, "codename": "delete_userdate"}}, {"model": "auth.permission", "pk": 2291, "fields": {"name": "Can add date policy", "content_type": 761, "codename": "add_datepolicy"}}, {"model": "auth.permission", "pk": 2292, "fields": {"name": "Can change date policy", "content_type": 761, "codename": "change_datepolicy"}}, {"model": "auth.permission", "pk": 2293, "fields": {"name": "Can delete date policy", "content_type": 761, "codename": "delete_datepolicy"}}, {"model": "auth.group", "pk": 1, "fields": {"name": "API Access Request Approvers", "permissions": []}}, {"model": "auth.user", "pk": 1, "fields": {"password": "!FXJJHcjbqdW2yNqrkNvJXSnTXxNZVYIj3SsIt7BB", "last_login": null, "is_superuser": false, "username": "ecommerce_worker", "first_name": "", "last_name": "", "email": "ecommerce_worker@fake.email", "is_staff": false, "is_active": true, "date_joined": "2017-12-06T02:20:20.329Z", "groups": [], "user_permissions": []}}, {"model": "auth.user", "pk": 2, "fields": {"password": "!rUv06Bh8BQoqyhkOEl2BtUKUwOX3NlpCVPBSwqBj", "last_login": null, "is_superuser": false, "username": "login_service_user", "first_name": "", "last_name": "", "email": "login_service_user@fake.email", "is_staff": false, "is_active": true, "date_joined": "2018-10-25T14:53:08.044Z", "groups": [], "user_permissions": []}}, {"model": "util.ratelimitconfiguration", "pk": 1, "fields": {"change_date": "2017-12-06T02:37:46.125Z", "changed_by": null, "enabled": true}}, {"model": "certificates.certificatehtmlviewconfiguration", "pk": 1, "fields": {"change_date": "2017-12-06T02:19:25.679Z", "changed_by": null, "enabled": false, "configuration": "{\"default\": {\"accomplishment_class_append\": \"accomplishment-certificate\", \"platform_name\": \"Your Platform Name Here\", \"logo_src\": \"/static/certificates/images/logo.png\", \"logo_url\": \"http://www.example.com\", \"company_verified_certificate_url\": \"http://www.example.com/verified-certificate\", \"company_privacy_url\": \"http://www.example.com/privacy-policy\", \"company_tos_url\": \"http://www.example.com/terms-service\", \"company_about_url\": \"http://www.example.com/about-us\"}, \"verified\": {\"certificate_type\": \"Verified\", \"certificate_title\": \"Verified Certificate of Achievement\"}, \"honor\": {\"certificate_type\": \"Honor Code\", \"certificate_title\": \"Certificate of Achievement\"}}"}}, {"model": "oauth2_provider.application", "pk": 2, "fields": {"client_id": "login-service-client-id", "user": 2, "redirect_uris": "", "client_type": "public", "authorization_grant_type": "password", "client_secret": "mpAwLT424Wm3HQfjVydNCceq7ZOERB72jVuzLSo0B7KldmPHqCmYQNyCMS2mklqzJN4XyT7VRcqHG7bHC0KDHIqcOAMpMisuCi7jIigmseHKKLjgjsx6DM9Rem2cOvO6", "name": "Login Service for JWT Cookies", "skip_authorization": false, "created": "2018-10-25T14:53:08.054Z", "updated": "2018-10-25T14:53:08.054Z"}}, {"model": "discussion_common.forumsconfig", "pk": 1, "fields": {"change_date": "2017-12-06T02:23:41.040Z", "changed_by": null, "enabled": true, "connection_timeout": 5.0}}, {"model": "dark_lang.darklangconfig", "pk": 1, "fields": {"change_date": "2017-12-06T02:22:45.120Z", "changed_by": null, "enabled": true, "released_languages": "", "enable_beta_languages": false, "beta_languages": ""}}] \ No newline at end of file diff --git a/common/test/db_cache/bok_choy_migrations_data_default.sql b/common/test/db_cache/bok_choy_migrations_data_default.sql index 070263ad79..d7dd28b02e 100644 --- a/common/test/db_cache/bok_choy_migrations_data_default.sql +++ b/common/test/db_cache/bok_choy_migrations_data_default.sql @@ -21,7 +21,7 @@ LOCK TABLES `django_migrations` WRITE; /*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; -INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2019-02-06 07:56:07.314317'),(2,'auth','0001_initial','2019-02-06 07:56:07.832368'),(3,'admin','0001_initial','2019-02-06 07:56:07.961256'),(4,'admin','0002_logentry_remove_auto_add','2019-02-06 07:56:08.013912'),(5,'sites','0001_initial','2019-02-06 07:56:08.072888'),(6,'contenttypes','0002_remove_content_type_name','2019-02-06 07:56:08.230528'),(7,'api_admin','0001_initial','2019-02-06 07:56:08.454101'),(8,'api_admin','0002_auto_20160325_1604','2019-02-06 07:56:08.533622'),(9,'api_admin','0003_auto_20160404_1618','2019-02-06 07:56:08.983603'),(10,'api_admin','0004_auto_20160412_1506','2019-02-06 07:56:09.311723'),(11,'api_admin','0005_auto_20160414_1232','2019-02-06 07:56:09.410291'),(12,'api_admin','0006_catalog','2019-02-06 07:56:09.439372'),(13,'api_admin','0007_delete_historical_api_records','2019-02-06 07:56:09.673117'),(14,'assessment','0001_initial','2019-02-06 07:56:11.477983'),(15,'assessment','0002_staffworkflow','2019-02-06 07:56:11.625937'),(16,'assessment','0003_expand_course_id','2019-02-06 07:56:11.815858'),(17,'auth','0002_alter_permission_name_max_length','2019-02-06 07:56:11.891156'),(18,'auth','0003_alter_user_email_max_length','2019-02-06 07:56:11.975525'),(19,'auth','0004_alter_user_username_opts','2019-02-06 07:56:12.013750'),(20,'auth','0005_alter_user_last_login_null','2019-02-06 07:56:12.096481'),(21,'auth','0006_require_contenttypes_0002','2019-02-06 07:56:12.108286'),(22,'auth','0007_alter_validators_add_error_messages','2019-02-06 07:56:12.164989'),(23,'auth','0008_alter_user_username_max_length','2019-02-06 07:56:12.240860'),(24,'instructor_task','0001_initial','2019-02-06 07:56:12.395820'),(25,'certificates','0001_initial','2019-02-06 07:56:13.480164'),(26,'certificates','0002_data__certificatehtmlviewconfiguration_data','2019-02-06 07:56:13.607503'),(27,'certificates','0003_data__default_modes','2019-02-06 07:56:13.751659'),(28,'certificates','0004_certificategenerationhistory','2019-02-06 07:56:13.904399'),(29,'certificates','0005_auto_20151208_0801','2019-02-06 07:56:13.986383'),(30,'certificates','0006_certificatetemplateasset_asset_slug','2019-02-06 07:56:14.058304'),(31,'certificates','0007_certificateinvalidation','2019-02-06 07:56:14.210453'),(32,'badges','0001_initial','2019-02-06 07:56:14.782804'),(33,'badges','0002_data__migrate_assertions','2019-02-06 07:56:15.175628'),(34,'badges','0003_schema__add_event_configuration','2019-02-06 07:56:15.324266'),(35,'block_structure','0001_config','2019-02-06 07:56:15.455000'),(36,'block_structure','0002_blockstructuremodel','2019-02-06 07:56:15.522120'),(37,'block_structure','0003_blockstructuremodel_storage','2019-02-06 07:56:15.564915'),(38,'block_structure','0004_blockstructuremodel_usagekeywithrun','2019-02-06 07:56:15.616240'),(39,'bookmarks','0001_initial','2019-02-06 07:56:16.017402'),(40,'branding','0001_initial','2019-02-06 07:56:16.267188'),(41,'course_modes','0001_initial','2019-02-06 07:56:16.438443'),(42,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2019-02-06 07:56:16.519337'),(43,'course_modes','0003_auto_20151113_1443','2019-02-06 07:56:16.576659'),(44,'course_modes','0004_auto_20151113_1457','2019-02-06 07:56:16.732369'),(45,'course_modes','0005_auto_20151217_0958','2019-02-06 07:56:16.788036'),(46,'course_modes','0006_auto_20160208_1407','2019-02-06 07:56:16.883873'),(47,'course_modes','0007_coursemode_bulk_sku','2019-02-06 07:56:17.029222'),(48,'course_groups','0001_initial','2019-02-06 07:56:18.181254'),(49,'bulk_email','0001_initial','2019-02-06 07:56:18.660435'),(50,'bulk_email','0002_data__load_course_email_template','2019-02-06 07:56:18.937143'),(51,'bulk_email','0003_config_model_feature_flag','2019-02-06 07:56:19.093038'),(52,'bulk_email','0004_add_email_targets','2019-02-06 07:56:19.788595'),(53,'bulk_email','0005_move_target_data','2019-02-06 07:56:19.959402'),(54,'bulk_email','0006_course_mode_targets','2019-02-06 07:56:20.165336'),(55,'catalog','0001_initial','2019-02-06 07:56:20.308745'),(56,'catalog','0002_catalogintegration_username','2019-02-06 07:56:20.439737'),(57,'catalog','0003_catalogintegration_page_size','2019-02-06 07:56:20.584307'),(58,'catalog','0004_auto_20170616_0618','2019-02-06 07:56:20.692298'),(59,'catalog','0005_catalogintegration_long_term_cache_ttl','2019-02-06 07:56:20.821560'),(60,'django_comment_common','0001_initial','2019-02-06 07:56:21.271577'),(61,'django_comment_common','0002_forumsconfig','2019-02-06 07:56:21.463632'),(62,'verified_track_content','0001_initial','2019-02-06 07:56:21.537783'),(63,'course_overviews','0001_initial','2019-02-06 07:56:21.715657'),(64,'course_overviews','0002_add_course_catalog_fields','2019-02-06 07:56:21.984772'),(65,'course_overviews','0003_courseoverviewgeneratedhistory','2019-02-06 07:56:22.053252'),(66,'course_overviews','0004_courseoverview_org','2019-02-06 07:56:22.134954'),(67,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2019-02-06 07:56:22.184071'),(68,'course_overviews','0006_courseoverviewimageset','2019-02-06 07:56:22.290455'),(69,'course_overviews','0007_courseoverviewimageconfig','2019-02-06 07:56:22.466348'),(70,'course_overviews','0008_remove_courseoverview_facebook_url','2019-02-06 07:56:22.484576'),(71,'course_overviews','0009_readd_facebook_url','2019-02-06 07:56:22.501725'),(72,'course_overviews','0010_auto_20160329_2317','2019-02-06 07:56:22.645825'),(73,'ccx','0001_initial','2019-02-06 07:56:23.183002'),(74,'ccx','0002_customcourseforedx_structure_json','2019-02-06 07:56:23.289052'),(75,'ccx','0003_add_master_course_staff_in_ccx','2019-02-06 07:56:23.840989'),(76,'ccx','0004_seed_forum_roles_in_ccx_courses','2019-02-06 07:56:23.988777'),(77,'ccx','0005_change_ccx_coach_to_staff','2019-02-06 07:56:24.160387'),(78,'ccx','0006_set_display_name_as_override','2019-02-06 07:56:24.337876'),(79,'ccxcon','0001_initial_ccxcon_model','2019-02-06 07:56:24.409092'),(80,'ccxcon','0002_auto_20160325_0407','2019-02-06 07:56:24.470172'),(81,'djcelery','0001_initial','2019-02-06 07:56:25.046777'),(82,'celery_utils','0001_initial','2019-02-06 07:56:25.165469'),(83,'celery_utils','0002_chordable_django_backend','2019-02-06 07:56:25.339734'),(84,'certificates','0008_schema__remove_badges','2019-02-06 07:56:25.535263'),(85,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2019-02-06 07:56:25.851268'),(86,'certificates','0010_certificatetemplate_language','2019-02-06 07:56:25.927039'),(87,'certificates','0011_certificatetemplate_alter_unique','2019-02-06 07:56:26.154544'),(88,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2019-02-06 07:56:26.228554'),(89,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2019-02-06 07:56:26.310926'),(90,'certificates','0014_change_eligible_certs_manager','2019-02-06 07:56:26.373051'),(91,'commerce','0001_data__add_ecommerce_service_user','2019-02-06 07:56:26.595906'),(92,'commerce','0002_commerceconfiguration','2019-02-06 07:56:26.698815'),(93,'commerce','0003_auto_20160329_0709','2019-02-06 07:56:26.761254'),(94,'commerce','0004_auto_20160531_0950','2019-02-06 07:56:27.150989'),(95,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2019-02-06 07:56:27.241421'),(96,'commerce','0006_auto_20170424_1734','2019-02-06 07:56:27.316222'),(97,'commerce','0007_auto_20180313_0609','2019-02-06 07:56:27.466841'),(98,'completion','0001_initial','2019-02-06 07:56:27.696977'),(99,'completion','0002_auto_20180125_1510','2019-02-06 07:56:27.757853'),(100,'enterprise','0001_initial','2019-02-06 07:56:28.027244'),(101,'enterprise','0002_enterprisecustomerbrandingconfiguration','2019-02-06 07:56:28.117647'),(102,'enterprise','0003_auto_20161104_0937','2019-02-06 07:56:28.428631'),(103,'enterprise','0004_auto_20161114_0434','2019-02-06 07:56:28.594141'),(104,'enterprise','0005_pendingenterprisecustomeruser','2019-02-06 07:56:28.710577'),(105,'enterprise','0006_auto_20161121_0241','2019-02-06 07:56:28.775663'),(106,'enterprise','0007_auto_20161109_1511','2019-02-06 07:56:28.924039'),(107,'enterprise','0008_auto_20161124_2355','2019-02-06 07:56:29.200628'),(108,'enterprise','0009_auto_20161130_1651','2019-02-06 07:56:29.740933'),(109,'enterprise','0010_auto_20161222_1212','2019-02-06 07:56:29.889801'),(110,'enterprise','0011_enterprisecustomerentitlement_historicalenterprisecustomerentitlement','2019-02-06 07:56:30.134143'),(111,'enterprise','0012_auto_20170125_1033','2019-02-06 07:56:30.264122'),(112,'enterprise','0013_auto_20170125_1157','2019-02-06 07:56:30.893749'),(113,'enterprise','0014_enrollmentnotificationemailtemplate_historicalenrollmentnotificationemailtemplate','2019-02-06 07:56:31.215731'),(114,'enterprise','0015_auto_20170130_0003','2019-02-06 07:56:31.450278'),(115,'enterprise','0016_auto_20170405_0647','2019-02-06 07:56:32.231656'),(116,'enterprise','0017_auto_20170508_1341','2019-02-06 07:56:32.492394'),(117,'enterprise','0018_auto_20170511_1357','2019-02-06 07:56:32.686868'),(118,'enterprise','0019_auto_20170606_1853','2019-02-06 07:56:32.884924'),(119,'enterprise','0020_auto_20170624_2316','2019-02-06 07:56:33.722514'),(120,'enterprise','0021_auto_20170711_0712','2019-02-06 07:56:34.290994'),(121,'enterprise','0022_auto_20170720_1543','2019-02-06 07:56:34.459932'),(122,'enterprise','0023_audit_data_reporting_flag','2019-02-06 07:56:34.693710'),(123,'enterprise','0024_enterprisecustomercatalog_historicalenterprisecustomercatalog','2019-02-06 07:56:34.991211'),(124,'enterprise','0025_auto_20170828_1412','2019-02-06 07:56:35.555899'),(125,'enterprise','0026_make_require_account_level_consent_nullable','2019-02-06 07:56:35.765541'),(126,'enterprise','0027_remove_account_level_consent','2019-02-06 07:56:36.799493'),(127,'enterprise','0028_link_enterprise_to_enrollment_template','2019-02-06 07:56:37.434413'),(128,'enterprise','0029_auto_20170925_1909','2019-02-06 07:56:37.650440'),(129,'enterprise','0030_auto_20171005_1600','2019-02-06 07:56:38.219936'),(130,'enterprise','0031_auto_20171012_1249','2019-02-06 07:56:38.438979'),(131,'enterprise','0032_reporting_model','2019-02-06 07:56:38.594362'),(132,'enterprise','0033_add_history_change_reason_field','2019-02-06 07:56:39.182772'),(133,'enterprise','0034_auto_20171023_0727','2019-02-06 07:56:39.321896'),(134,'enterprise','0035_auto_20171212_1129','2019-02-06 07:56:39.517158'),(135,'enterprise','0036_sftp_reporting_support','2019-02-06 07:56:39.958256'),(136,'enterprise','0037_auto_20180110_0450','2019-02-06 07:56:40.144689'),(137,'enterprise','0038_auto_20180122_1427','2019-02-06 07:56:40.326004'),(138,'enterprise','0039_auto_20180129_1034','2019-02-06 07:56:40.539093'),(139,'enterprise','0040_auto_20180129_1428','2019-02-06 07:56:40.854288'),(140,'enterprise','0041_auto_20180212_1507','2019-02-06 07:56:41.037158'),(141,'consent','0001_initial','2019-02-06 07:56:41.608778'),(142,'consent','0002_migrate_to_new_data_sharing_consent','2019-02-06 07:56:42.267785'),(143,'consent','0003_historicaldatasharingconsent_history_change_reason','2019-02-06 07:56:42.405847'),(144,'consent','0004_datasharingconsenttextoverrides','2019-02-06 07:56:42.584250'),(145,'sites','0002_alter_domain_unique','2019-02-06 07:56:42.663878'),(146,'course_overviews','0011_courseoverview_marketing_url','2019-02-06 07:56:42.745921'),(147,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2019-02-06 07:56:42.834692'),(148,'course_overviews','0013_courseoverview_language','2019-02-06 07:56:42.913480'),(149,'course_overviews','0014_courseoverview_certificate_available_date','2019-02-06 07:56:42.991669'),(150,'content_type_gating','0001_initial','2019-02-06 07:56:43.235932'),(151,'content_type_gating','0002_auto_20181119_0959','2019-02-06 07:56:43.426345'),(152,'content_type_gating','0003_auto_20181128_1407','2019-02-06 07:56:43.580657'),(153,'content_type_gating','0004_auto_20181128_1521','2019-02-06 07:56:43.695613'),(154,'contentserver','0001_initial','2019-02-06 07:56:43.851239'),(155,'contentserver','0002_cdnuseragentsconfig','2019-02-06 07:56:44.018561'),(156,'cors_csrf','0001_initial','2019-02-06 07:56:44.181287'),(157,'course_action_state','0001_initial','2019-02-06 07:56:44.503331'),(158,'course_duration_limits','0001_initial','2019-02-06 07:56:44.746279'),(159,'course_duration_limits','0002_auto_20181119_0959','2019-02-06 07:56:44.877465'),(160,'course_duration_limits','0003_auto_20181128_1407','2019-02-06 07:56:45.039785'),(161,'course_duration_limits','0004_auto_20181128_1521','2019-02-06 07:56:45.182919'),(162,'course_goals','0001_initial','2019-02-06 07:56:45.519690'),(163,'course_goals','0002_auto_20171010_1129','2019-02-06 07:56:45.644315'),(164,'course_groups','0002_change_inline_default_cohort_value','2019-02-06 07:56:45.709570'),(165,'course_groups','0003_auto_20170609_1455','2019-02-06 07:56:45.983496'),(166,'course_modes','0008_course_key_field_to_foreign_key','2019-02-06 07:56:46.593883'),(167,'course_modes','0009_suggested_prices_to_charfield','2019-02-06 07:56:46.661433'),(168,'course_modes','0010_archived_suggested_prices_to_charfield','2019-02-06 07:56:46.723034'),(169,'course_modes','0011_change_regex_for_comma_separated_ints','2019-02-06 07:56:46.829468'),(170,'courseware','0001_initial','2019-02-06 07:56:49.952932'),(171,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2019-02-06 07:56:50.721374'),(172,'courseware','0003_auto_20170825_0935','2019-02-06 07:56:50.903279'),(173,'courseware','0004_auto_20171010_1639','2019-02-06 07:56:51.166884'),(174,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2019-02-06 07:56:51.597870'),(175,'courseware','0006_remove_module_id_index','2019-02-06 07:56:51.781895'),(176,'courseware','0007_remove_done_index','2019-02-06 07:56:51.968472'),(177,'coursewarehistoryextended','0001_initial','2019-02-06 07:56:52.632278'),(178,'coursewarehistoryextended','0002_force_studentmodule_index','2019-02-06 07:56:52.709752'),(179,'crawlers','0001_initial','2019-02-06 07:56:53.074661'),(180,'crawlers','0002_auto_20170419_0018','2019-02-06 07:56:53.203552'),(181,'credentials','0001_initial','2019-02-06 07:56:53.404087'),(182,'credentials','0002_auto_20160325_0631','2019-02-06 07:56:53.531754'),(183,'credentials','0003_auto_20170525_1109','2019-02-06 07:56:53.709376'),(184,'credentials','0004_notifycredentialsconfig','2019-02-06 07:56:53.854337'),(185,'credit','0001_initial','2019-02-06 07:56:55.324738'),(186,'credit','0002_creditconfig','2019-02-06 07:56:55.478476'),(187,'credit','0003_auto_20160511_2227','2019-02-06 07:56:55.552916'),(188,'credit','0004_delete_historical_credit_records','2019-02-06 07:56:56.180340'),(189,'dark_lang','0001_initial','2019-02-06 07:56:56.341474'),(190,'dark_lang','0002_data__enable_on_install','2019-02-06 07:56:56.783194'),(191,'dark_lang','0003_auto_20180425_0359','2019-02-06 07:56:57.055067'),(192,'database_fixups','0001_initial','2019-02-06 07:56:57.627927'),(193,'degreed','0001_initial','2019-02-06 07:56:58.969941'),(194,'degreed','0002_auto_20180104_0103','2019-02-06 07:56:59.471941'),(195,'degreed','0003_auto_20180109_0712','2019-02-06 07:56:59.731040'),(196,'degreed','0004_auto_20180306_1251','2019-02-06 07:56:59.997860'),(197,'degreed','0005_auto_20180807_1302','2019-02-06 07:57:02.069830'),(198,'degreed','0006_upgrade_django_simple_history','2019-02-06 07:57:02.273708'),(199,'django_comment_common','0003_enable_forums','2019-02-06 07:57:02.626514'),(200,'django_comment_common','0004_auto_20161117_1209','2019-02-06 07:57:02.820104'),(201,'django_comment_common','0005_coursediscussionsettings','2019-02-06 07:57:02.896624'),(202,'django_comment_common','0006_coursediscussionsettings_discussions_id_map','2019-02-06 07:57:02.998038'),(203,'django_comment_common','0007_discussionsidmapping','2019-02-06 07:57:03.083783'),(204,'django_comment_common','0008_role_user_index','2019-02-06 07:57:03.168933'),(205,'django_notify','0001_initial','2019-02-06 07:57:04.348365'),(206,'django_openid_auth','0001_initial','2019-02-06 07:57:04.778823'),(207,'oauth2','0001_initial','2019-02-06 07:57:06.639640'),(208,'edx_oauth2_provider','0001_initial','2019-02-06 07:57:06.912829'),(209,'edx_proctoring','0001_initial','2019-02-06 07:57:11.833284'),(210,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2019-02-06 07:57:12.158509'),(211,'edx_proctoring','0003_auto_20160101_0525','2019-02-06 07:57:12.624375'),(212,'edx_proctoring','0004_auto_20160201_0523','2019-02-06 07:57:13.412490'),(213,'edx_proctoring','0005_proctoredexam_hide_after_due','2019-02-06 07:57:13.542482'),(214,'edx_proctoring','0006_allowed_time_limit_mins','2019-02-06 07:57:13.995842'),(215,'edx_proctoring','0007_proctoredexam_backend','2019-02-06 07:57:14.113562'),(216,'edx_proctoring','0008_auto_20181116_1551','2019-02-06 07:57:14.705891'),(217,'edx_proctoring','0009_proctoredexamreviewpolicy_remove_rules','2019-02-06 07:57:15.116276'),(218,'edxval','0001_initial','2019-02-06 07:57:15.863533'),(219,'edxval','0002_data__default_profiles','2019-02-06 07:57:16.818661'),(220,'edxval','0003_coursevideo_is_hidden','2019-02-06 07:57:16.918246'),(221,'edxval','0004_data__add_hls_profile','2019-02-06 07:57:17.289957'),(222,'edxval','0005_videoimage','2019-02-06 07:57:17.492770'),(223,'edxval','0006_auto_20171009_0725','2019-02-06 07:57:17.716551'),(224,'edxval','0007_transcript_credentials_state','2019-02-06 07:57:17.845730'),(225,'edxval','0008_remove_subtitles','2019-02-06 07:57:17.992131'),(226,'edxval','0009_auto_20171127_0406','2019-02-06 07:57:18.060122'),(227,'edxval','0010_add_video_as_foreign_key','2019-02-06 07:57:18.365704'),(228,'edxval','0011_data__add_audio_mp3_profile','2019-02-06 07:57:18.730704'),(229,'email_marketing','0001_initial','2019-02-06 07:57:19.051984'),(230,'email_marketing','0002_auto_20160623_1656','2019-02-06 07:57:21.789475'),(231,'email_marketing','0003_auto_20160715_1145','2019-02-06 07:57:22.963260'),(232,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2019-02-06 07:57:23.293836'),(233,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2019-02-06 07:57:23.617029'),(234,'email_marketing','0006_auto_20170711_0615','2019-02-06 07:57:24.245380'),(235,'email_marketing','0007_auto_20170809_0653','2019-02-06 07:57:24.897713'),(236,'email_marketing','0008_auto_20170809_0539','2019-02-06 07:57:25.325581'),(237,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2019-02-06 07:57:25.603626'),(238,'email_marketing','0010_auto_20180425_0800','2019-02-06 07:57:26.312049'),(239,'embargo','0001_initial','2019-02-06 07:57:28.072877'),(240,'embargo','0002_data__add_countries','2019-02-06 07:57:29.877570'),(241,'enterprise','0042_replace_sensitive_sso_username','2019-02-06 07:57:30.224348'),(242,'enterprise','0043_auto_20180507_0138','2019-02-06 07:57:30.838462'),(243,'enterprise','0044_reporting_config_multiple_types','2019-02-06 07:57:31.233674'),(244,'enterprise','0045_report_type_json','2019-02-06 07:57:31.322889'),(245,'enterprise','0046_remove_unique_constraints','2019-02-06 07:57:31.424455'),(246,'enterprise','0047_auto_20180517_0457','2019-02-06 07:57:31.785098'),(247,'enterprise','0048_enterprisecustomeruser_active','2019-02-06 07:57:31.904647'),(248,'enterprise','0049_auto_20180531_0321','2019-02-06 07:57:32.509863'),(249,'enterprise','0050_progress_v2','2019-02-06 07:57:33.253255'),(250,'enterprise','0051_add_enterprise_slug','2019-02-06 07:57:34.073175'),(251,'enterprise','0052_create_unique_slugs','2019-02-06 07:57:34.414601'),(252,'enterprise','0053_pendingenrollment_cohort_name','2019-02-06 07:57:34.520875'),(253,'enterprise','0053_auto_20180911_0811','2019-02-06 07:57:34.914654'),(254,'enterprise','0054_merge_20180914_1511','2019-02-06 07:57:34.944784'),(255,'enterprise','0055_auto_20181015_1112','2019-02-06 07:57:35.409450'),(256,'enterprise','0056_enterprisecustomerreportingconfiguration_pgp_encryption_key','2019-02-06 07:57:35.545845'),(257,'enterprise','0057_enterprisecustomerreportingconfiguration_enterprise_customer_catalogs','2019-02-06 07:57:35.960406'),(258,'enterprise','0058_auto_20181212_0145','2019-02-06 07:57:37.113916'),(259,'enterprise','0059_add_code_management_portal_config','2019-02-06 07:57:37.575928'),(260,'enterprise','0060_upgrade_django_simple_history','2019-02-06 07:57:38.213269'),(261,'student','0001_initial','2019-02-06 07:57:47.588358'),(262,'student','0002_auto_20151208_1034','2019-02-06 07:57:47.836707'),(263,'student','0003_auto_20160516_0938','2019-02-06 07:57:48.149932'),(264,'student','0004_auto_20160531_1422','2019-02-06 07:57:48.286460'),(265,'student','0005_auto_20160531_1653','2019-02-06 07:57:48.431860'),(266,'student','0006_logoutviewconfiguration','2019-02-06 07:57:48.974430'),(267,'student','0007_registrationcookieconfiguration','2019-02-06 07:57:49.147001'),(268,'student','0008_auto_20161117_1209','2019-02-06 07:57:49.263656'),(269,'student','0009_auto_20170111_0422','2019-02-06 07:57:49.377186'),(270,'student','0010_auto_20170207_0458','2019-02-06 07:57:49.407334'),(271,'student','0011_course_key_field_to_foreign_key','2019-02-06 07:57:50.975260'),(272,'student','0012_sociallink','2019-02-06 07:57:51.409953'),(273,'student','0013_delete_historical_enrollment_records','2019-02-06 07:57:52.968613'),(274,'entitlements','0001_initial','2019-02-06 07:57:53.425447'),(275,'entitlements','0002_auto_20171102_0719','2019-02-06 07:57:55.014484'),(276,'entitlements','0003_auto_20171205_1431','2019-02-06 07:57:57.282703'),(277,'entitlements','0004_auto_20171206_1729','2019-02-06 07:57:57.704486'),(278,'entitlements','0005_courseentitlementsupportdetail','2019-02-06 07:57:58.400522'),(279,'entitlements','0006_courseentitlementsupportdetail_action','2019-02-06 07:57:59.000339'),(280,'entitlements','0007_change_expiration_period_default','2019-02-06 07:57:59.217527'),(281,'entitlements','0008_auto_20180328_1107','2019-02-06 07:58:00.023003'),(282,'entitlements','0009_courseentitlement_refund_locked','2019-02-06 07:58:00.552995'),(283,'entitlements','0010_backfill_refund_lock','2019-02-06 07:58:01.471558'),(284,'experiments','0001_initial','2019-02-06 07:58:02.990331'),(285,'experiments','0002_auto_20170627_1402','2019-02-06 07:58:03.207899'),(286,'experiments','0003_auto_20170713_1148','2019-02-06 07:58:03.289623'),(287,'external_auth','0001_initial','2019-02-06 07:58:04.122332'),(288,'grades','0001_initial','2019-02-06 07:58:04.449795'),(289,'grades','0002_rename_last_edited_field','2019-02-06 07:58:04.542638'),(290,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2019-02-06 07:58:05.727274'),(291,'grades','0004_visibleblocks_course_id','2019-02-06 07:58:05.867193'),(292,'grades','0005_multiple_course_flags','2019-02-06 07:58:06.312646'),(293,'grades','0006_persistent_course_grades','2019-02-06 07:58:06.568446'),(294,'grades','0007_add_passed_timestamp_column','2019-02-06 07:58:07.247313'),(295,'grades','0008_persistentsubsectiongrade_first_attempted','2019-02-06 07:58:07.349076'),(296,'grades','0009_auto_20170111_1507','2019-02-06 07:58:07.498641'),(297,'grades','0010_auto_20170112_1156','2019-02-06 07:58:07.583662'),(298,'grades','0011_null_edited_time','2019-02-06 07:58:07.916494'),(299,'grades','0012_computegradessetting','2019-02-06 07:58:08.432066'),(300,'grades','0013_persistentsubsectiongradeoverride','2019-02-06 07:58:08.633723'),(301,'grades','0014_persistentsubsectiongradeoverridehistory','2019-02-06 07:58:09.160210'),(302,'instructor_task','0002_gradereportsetting','2019-02-06 07:58:09.580204'),(303,'waffle','0001_initial','2019-02-06 07:58:10.444295'),(304,'sap_success_factors','0001_initial','2019-02-06 07:58:12.042509'),(305,'sap_success_factors','0002_auto_20170224_1545','2019-02-06 07:58:13.979236'),(306,'sap_success_factors','0003_auto_20170317_1402','2019-02-06 07:58:14.701821'),(307,'sap_success_factors','0004_catalogtransmissionaudit_audit_summary','2019-02-06 07:58:14.797945'),(308,'sap_success_factors','0005_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 07:58:15.137352'),(309,'sap_success_factors','0006_sapsuccessfactors_use_enterprise_enrollment_page_waffle_flag','2019-02-06 07:58:15.692938'),(310,'sap_success_factors','0007_remove_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 07:58:16.090806'),(311,'sap_success_factors','0008_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 07:58:16.886204'),(312,'sap_success_factors','0009_sapsuccessfactors_remove_enterprise_enrollment_page_waffle_flag','2019-02-06 07:58:17.493133'),(313,'sap_success_factors','0010_move_audit_tables_to_base_integrated_channel','2019-02-06 07:58:18.256051'),(314,'integrated_channel','0001_initial','2019-02-06 07:58:18.434760'),(315,'integrated_channel','0002_delete_enterpriseintegratedchannel','2019-02-06 07:58:18.534852'),(316,'integrated_channel','0003_catalogtransmissionaudit_learnerdatatransmissionaudit','2019-02-06 07:58:18.697143'),(317,'integrated_channel','0004_catalogtransmissionaudit_channel','2019-02-06 07:58:18.821246'),(318,'integrated_channel','0005_auto_20180306_1251','2019-02-06 07:58:19.378821'),(319,'integrated_channel','0006_delete_catalogtransmissionaudit','2019-02-06 07:58:19.463872'),(320,'lms_xblock','0001_initial','2019-02-06 07:58:19.938021'),(321,'microsite_configuration','0001_initial','2019-02-06 07:58:24.417944'),(322,'microsite_configuration','0002_auto_20160202_0228','2019-02-06 07:58:24.704162'),(323,'microsite_configuration','0003_delete_historical_records','2019-02-06 07:58:27.217560'),(324,'milestones','0001_initial','2019-02-06 07:58:28.438298'),(325,'milestones','0002_data__seed_relationship_types','2019-02-06 07:58:29.074808'),(326,'milestones','0003_coursecontentmilestone_requirements','2019-02-06 07:58:29.198318'),(327,'milestones','0004_auto_20151221_1445','2019-02-06 07:58:29.608126'),(328,'mobile_api','0001_initial','2019-02-06 07:58:30.546212'),(329,'mobile_api','0002_auto_20160406_0904','2019-02-06 07:58:30.725452'),(330,'mobile_api','0003_ignore_mobile_available_flag','2019-02-06 07:58:31.637551'),(331,'notes','0001_initial','2019-02-06 07:58:32.158209'),(332,'oauth2','0002_auto_20160404_0813','2019-02-06 07:58:33.398358'),(333,'oauth2','0003_client_logout_uri','2019-02-06 07:58:33.785963'),(334,'oauth2','0004_add_index_on_grant_expires','2019-02-06 07:58:34.178788'),(335,'oauth2','0005_grant_nonce','2019-02-06 07:58:35.284863'),(336,'organizations','0001_initial','2019-02-06 07:58:35.646051'),(337,'organizations','0002_auto_20170117_1434','2019-02-06 07:58:35.750682'),(338,'organizations','0003_auto_20170221_1138','2019-02-06 07:58:35.925588'),(339,'organizations','0004_auto_20170413_2315','2019-02-06 07:58:36.060193'),(340,'organizations','0005_auto_20171116_0640','2019-02-06 07:58:36.145008'),(341,'organizations','0006_auto_20171207_0259','2019-02-06 07:58:36.257476'),(342,'oauth2_provider','0001_initial','2019-02-06 07:58:38.097999'),(343,'oauth_dispatch','0001_initial','2019-02-06 07:58:38.563660'),(344,'oauth_dispatch','0002_scopedapplication_scopedapplicationorganization','2019-02-06 07:58:40.054311'),(345,'oauth_dispatch','0003_application_data','2019-02-06 07:58:40.676680'),(346,'oauth_dispatch','0004_auto_20180626_1349','2019-02-06 07:58:43.112430'),(347,'oauth_dispatch','0005_applicationaccess_type','2019-02-06 07:58:43.714100'),(348,'oauth_dispatch','0006_drop_application_id_constraints','2019-02-06 07:58:44.030090'),(349,'oauth2_provider','0002_08_updates','2019-02-06 07:58:44.450850'),(350,'oauth2_provider','0003_auto_20160316_1503','2019-02-06 07:58:44.640899'),(351,'oauth2_provider','0004_auto_20160525_1623','2019-02-06 07:58:44.975564'),(352,'oauth2_provider','0005_auto_20170514_1141','2019-02-06 07:58:47.370031'),(353,'oauth2_provider','0006_auto_20171214_2232','2019-02-06 07:58:48.599294'),(354,'oauth_dispatch','0007_restore_application_id_constraints','2019-02-06 07:58:49.006205'),(355,'oauth_provider','0001_initial','2019-02-06 07:58:49.563238'),(356,'problem_builder','0001_initial','2019-02-06 07:58:49.794124'),(357,'problem_builder','0002_auto_20160121_1525','2019-02-06 07:58:50.200720'),(358,'problem_builder','0003_auto_20161124_0755','2019-02-06 07:58:50.413858'),(359,'problem_builder','0004_copy_course_ids','2019-02-06 07:58:51.128055'),(360,'problem_builder','0005_auto_20170112_1021','2019-02-06 07:58:51.340194'),(361,'problem_builder','0006_remove_deprecated_course_id','2019-02-06 07:58:51.564692'),(362,'programs','0001_initial','2019-02-06 07:58:51.747931'),(363,'programs','0002_programsapiconfig_cache_ttl','2019-02-06 07:58:51.898433'),(364,'programs','0003_auto_20151120_1613','2019-02-06 07:58:53.094465'),(365,'programs','0004_programsapiconfig_enable_certification','2019-02-06 07:58:53.288122'),(366,'programs','0005_programsapiconfig_max_retries','2019-02-06 07:58:53.445000'),(367,'programs','0006_programsapiconfig_xseries_ad_enabled','2019-02-06 07:58:53.602411'),(368,'programs','0007_programsapiconfig_program_listing_enabled','2019-02-06 07:58:53.755138'),(369,'programs','0008_programsapiconfig_program_details_enabled','2019-02-06 07:58:53.875763'),(370,'programs','0009_programsapiconfig_marketing_path','2019-02-06 07:58:54.018436'),(371,'programs','0010_auto_20170204_2332','2019-02-06 07:58:54.237222'),(372,'programs','0011_auto_20170301_1844','2019-02-06 07:58:55.604408'),(373,'programs','0012_auto_20170419_0018','2019-02-06 07:58:55.728622'),(374,'redirects','0001_initial','2019-02-06 07:58:56.618741'),(375,'rss_proxy','0001_initial','2019-02-06 07:58:56.722680'),(376,'sap_success_factors','0011_auto_20180104_0103','2019-02-06 07:59:01.328739'),(377,'sap_success_factors','0012_auto_20180109_0712','2019-02-06 07:59:01.778378'),(378,'sap_success_factors','0013_auto_20180306_1251','2019-02-06 07:59:02.285821'),(379,'sap_success_factors','0014_drop_historical_table','2019-02-06 07:59:02.903520'),(380,'sap_success_factors','0015_auto_20180510_1259','2019-02-06 07:59:03.734759'),(381,'sap_success_factors','0016_sapsuccessfactorsenterprisecustomerconfiguration_additional_locales','2019-02-06 07:59:03.878684'),(382,'sap_success_factors','0017_sapsuccessfactorsglobalconfiguration_search_student_api_path','2019-02-06 07:59:04.766539'),(383,'schedules','0001_initial','2019-02-06 07:59:05.179663'),(384,'schedules','0002_auto_20170816_1532','2019-02-06 07:59:05.397766'),(385,'schedules','0003_scheduleconfig','2019-02-06 07:59:05.977222'),(386,'schedules','0004_auto_20170922_1428','2019-02-06 07:59:06.791066'),(387,'schedules','0005_auto_20171010_1722','2019-02-06 07:59:07.631416'),(388,'schedules','0006_scheduleexperience','2019-02-06 07:59:08.189048'),(389,'schedules','0007_scheduleconfig_hold_back_ratio','2019-02-06 07:59:08.776239'),(390,'self_paced','0001_initial','2019-02-06 07:59:09.799050'),(391,'sessions','0001_initial','2019-02-06 07:59:09.921074'),(392,'shoppingcart','0001_initial','2019-02-06 07:59:21.053818'),(393,'shoppingcart','0002_auto_20151208_1034','2019-02-06 07:59:21.335220'),(394,'shoppingcart','0003_auto_20151217_0958','2019-02-06 07:59:21.599445'),(395,'shoppingcart','0004_change_meta_options','2019-02-06 07:59:21.823322'),(396,'site_configuration','0001_initial','2019-02-06 07:59:22.992881'),(397,'site_configuration','0002_auto_20160720_0231','2019-02-06 07:59:23.853074'),(398,'default','0001_initial','2019-02-06 07:59:25.015201'),(399,'social_auth','0001_initial','2019-02-06 07:59:25.046686'),(400,'default','0002_add_related_name','2019-02-06 07:59:25.500745'),(401,'social_auth','0002_add_related_name','2019-02-06 07:59:25.532177'),(402,'default','0003_alter_email_max_length','2019-02-06 07:59:25.652620'),(403,'social_auth','0003_alter_email_max_length','2019-02-06 07:59:25.690150'),(404,'default','0004_auto_20160423_0400','2019-02-06 07:59:26.074154'),(405,'social_auth','0004_auto_20160423_0400','2019-02-06 07:59:26.105575'),(406,'social_auth','0005_auto_20160727_2333','2019-02-06 07:59:26.241475'),(407,'social_django','0006_partial','2019-02-06 07:59:26.399875'),(408,'social_django','0007_code_timestamp','2019-02-06 07:59:26.566550'),(409,'social_django','0008_partial_timestamp','2019-02-06 07:59:26.712434'),(410,'splash','0001_initial','2019-02-06 07:59:27.288326'),(411,'static_replace','0001_initial','2019-02-06 07:59:27.851106'),(412,'static_replace','0002_assetexcludedextensionsconfig','2019-02-06 07:59:29.178463'),(413,'status','0001_initial','2019-02-06 07:59:30.834233'),(414,'status','0002_update_help_text','2019-02-06 07:59:31.259226'),(415,'student','0014_courseenrollmentallowed_user','2019-02-06 07:59:31.843553'),(416,'student','0015_manualenrollmentaudit_add_role','2019-02-06 07:59:32.339124'),(417,'student','0016_coursenrollment_course_on_delete_do_nothing','2019-02-06 07:59:33.019734'),(418,'student','0017_accountrecovery','2019-02-06 07:59:34.081866'),(419,'student','0018_remove_password_history','2019-02-06 07:59:35.360857'),(420,'student','0019_auto_20181221_0540','2019-02-06 07:59:36.450684'),(421,'submissions','0001_initial','2019-02-06 07:59:37.468217'),(422,'submissions','0002_auto_20151119_0913','2019-02-06 07:59:37.751719'),(423,'submissions','0003_submission_status','2019-02-06 07:59:37.951880'),(424,'submissions','0004_remove_django_extensions','2019-02-06 07:59:38.080449'),(425,'survey','0001_initial','2019-02-06 07:59:38.937112'),(426,'teams','0001_initial','2019-02-06 07:59:42.234272'),(427,'theming','0001_initial','2019-02-06 07:59:42.964122'),(428,'third_party_auth','0001_initial','2019-02-06 07:59:46.893944'),(429,'third_party_auth','0002_schema__provider_icon_image','2019-02-06 07:59:51.814091'),(430,'third_party_auth','0003_samlproviderconfig_debug_mode','2019-02-06 07:59:52.360263'),(431,'third_party_auth','0004_add_visible_field','2019-02-06 07:59:56.187303'),(432,'third_party_auth','0005_add_site_field','2019-02-06 08:00:00.726584'),(433,'third_party_auth','0006_samlproviderconfig_automatic_refresh_enabled','2019-02-06 08:00:01.267932'),(434,'third_party_auth','0007_auto_20170406_0912','2019-02-06 08:00:02.190874'),(435,'third_party_auth','0008_auto_20170413_1455','2019-02-06 08:00:03.658115'),(436,'third_party_auth','0009_auto_20170415_1144','2019-02-06 08:00:05.420674'),(437,'third_party_auth','0010_add_skip_hinted_login_dialog_field','2019-02-06 08:00:07.334260'),(438,'third_party_auth','0011_auto_20170616_0112','2019-02-06 08:00:07.841081'),(439,'third_party_auth','0012_auto_20170626_1135','2019-02-06 08:00:09.649831'),(440,'third_party_auth','0013_sync_learner_profile_data','2019-02-06 08:00:12.254172'),(441,'third_party_auth','0014_auto_20171222_1233','2019-02-06 08:00:13.935686'),(442,'third_party_auth','0015_samlproviderconfig_archived','2019-02-06 08:00:14.559179'),(443,'third_party_auth','0016_auto_20180130_0938','2019-02-06 08:00:15.656894'),(444,'third_party_auth','0017_remove_icon_class_image_secondary_fields','2019-02-06 08:00:17.597823'),(445,'third_party_auth','0018_auto_20180327_1631','2019-02-06 08:00:20.302724'),(446,'third_party_auth','0019_consolidate_slug','2019-02-06 08:00:23.246774'),(447,'third_party_auth','0020_cleanup_slug_fields','2019-02-06 08:00:25.498101'),(448,'third_party_auth','0021_sso_id_verification','2019-02-06 08:00:27.269685'),(449,'third_party_auth','0022_auto_20181012_0307','2019-02-06 08:00:30.475559'),(450,'thumbnail','0001_initial','2019-02-06 08:00:30.680886'),(451,'track','0001_initial','2019-02-06 08:00:30.998373'),(452,'user_api','0001_initial','2019-02-06 08:00:35.324701'),(453,'user_api','0002_retirementstate_userretirementstatus','2019-02-06 08:00:36.082707'),(454,'user_api','0003_userretirementrequest','2019-02-06 08:00:36.665229'),(455,'user_api','0004_userretirementpartnerreportingstatus','2019-02-06 08:00:37.317791'),(456,'user_authn','0001_data__add_login_service','2019-02-06 08:00:39.270679'),(457,'util','0001_initial','2019-02-06 08:00:39.822745'),(458,'util','0002_data__default_rate_limit_config','2019-02-06 08:00:40.606869'),(459,'verified_track_content','0002_verifiedtrackcohortedcourse_verified_cohort_name','2019-02-06 08:00:40.741152'),(460,'verified_track_content','0003_migrateverifiedtrackcohortssetting','2019-02-06 08:00:41.360407'),(461,'verify_student','0001_initial','2019-02-06 08:00:47.236180'),(462,'verify_student','0002_auto_20151124_1024','2019-02-06 08:00:47.481347'),(463,'verify_student','0003_auto_20151113_1443','2019-02-06 08:00:47.697474'),(464,'verify_student','0004_delete_historical_records','2019-02-06 08:00:47.928549'),(465,'verify_student','0005_remove_deprecated_models','2019-02-06 08:00:53.255639'),(466,'verify_student','0006_ssoverification','2019-02-06 08:00:53.608512'),(467,'verify_student','0007_idverificationaggregate','2019-02-06 08:00:54.126314'),(468,'verify_student','0008_populate_idverificationaggregate','2019-02-06 08:00:55.099295'),(469,'verify_student','0009_remove_id_verification_aggregate','2019-02-06 08:00:55.505989'),(470,'verify_student','0010_manualverification','2019-02-06 08:00:55.733258'),(471,'verify_student','0011_add_fields_to_sspv','2019-02-06 08:00:56.760072'),(472,'video_config','0001_initial','2019-02-06 08:00:57.094097'),(473,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2019-02-06 08:00:57.451972'),(474,'video_config','0003_transcriptmigrationsetting','2019-02-06 08:00:57.665251'),(475,'video_config','0004_transcriptmigrationsetting_command_run','2019-02-06 08:00:57.846477'),(476,'video_config','0005_auto_20180719_0752','2019-02-06 08:00:58.093978'),(477,'video_config','0006_videothumbnailetting_updatedcoursevideos','2019-02-06 08:00:58.479655'),(478,'video_config','0007_videothumbnailsetting_offset','2019-02-06 08:00:58.702464'),(479,'video_pipeline','0001_initial','2019-02-06 08:00:58.930134'),(480,'video_pipeline','0002_auto_20171114_0704','2019-02-06 08:00:59.248554'),(481,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2019-02-06 08:00:59.639240'),(482,'waffle','0002_auto_20161201_0958','2019-02-06 08:00:59.770761'),(483,'waffle_utils','0001_initial','2019-02-06 08:01:00.120690'),(484,'wiki','0001_initial','2019-02-06 08:01:13.521825'),(485,'wiki','0002_remove_article_subscription','2019-02-06 08:01:13.635976'),(486,'wiki','0003_ip_address_conv','2019-02-06 08:01:15.191324'),(487,'wiki','0004_increase_slug_size','2019-02-06 08:01:15.438646'),(488,'wiki','0005_remove_attachments_and_images','2019-02-06 08:01:20.535437'),(489,'workflow','0001_initial','2019-02-06 08:01:20.955248'),(490,'workflow','0002_remove_django_extensions','2019-02-06 08:01:21.089005'),(491,'xapi','0001_initial','2019-02-06 08:01:21.762133'),(492,'xapi','0002_auto_20180726_0142','2019-02-06 08:01:22.140082'),(493,'xblock_django','0001_initial','2019-02-06 08:01:22.817601'),(494,'xblock_django','0002_auto_20160204_0809','2019-02-06 08:01:23.428800'),(495,'xblock_django','0003_add_new_config_models','2019-02-06 08:01:26.720065'),(496,'xblock_django','0004_delete_xblock_disable_config','2019-02-06 08:01:28.046351'),(497,'social_django','0002_add_related_name','2019-02-06 08:01:28.238120'),(498,'social_django','0003_alter_email_max_length','2019-02-06 08:01:28.295485'),(499,'social_django','0004_auto_20160423_0400','2019-02-06 08:01:28.369651'),(500,'social_django','0001_initial','2019-02-06 08:01:28.419547'),(501,'social_django','0005_auto_20160727_2333','2019-02-06 08:01:28.470149'),(502,'contentstore','0001_initial','2019-02-06 08:02:13.717472'),(503,'contentstore','0002_add_assets_page_flag','2019-02-06 08:02:14.894230'),(504,'contentstore','0003_remove_assets_page_flag','2019-02-06 08:02:15.936128'),(505,'course_creators','0001_initial','2019-02-06 08:02:16.677395'),(506,'tagging','0001_initial','2019-02-06 08:02:16.919416'),(507,'tagging','0002_auto_20170116_1541','2019-02-06 08:02:17.057789'),(508,'user_tasks','0001_initial','2019-02-06 08:02:18.095204'),(509,'user_tasks','0002_artifact_file_storage','2019-02-06 08:02:18.200132'),(510,'xblock_config','0001_initial','2019-02-06 08:02:18.497728'),(511,'xblock_config','0002_courseeditltifieldsenabledflag','2019-02-06 08:02:19.039966'),(512,'lti_provider','0001_initial','2019-02-20 13:01:39.285635'),(513,'lti_provider','0002_auto_20160325_0407','2019-02-20 13:01:39.369768'),(514,'lti_provider','0003_auto_20161118_1040','2019-02-20 13:01:39.445830'),(515,'content_type_gating','0005_auto_20190306_1547','2019-03-06 16:00:40.248896'),(516,'course_duration_limits','0005_auto_20190306_1546','2019-03-06 16:00:40.908922'),(517,'enterprise','0061_systemwideenterpriserole_systemwideenterpriseuserroleassignment','2019-03-08 15:47:17.741727'),(518,'enterprise','0062_add_system_wide_enterprise_roles','2019-03-08 15:47:17.809640'),(519,'content_type_gating','0006_auto_20190308_1447','2019-03-11 16:27:21.659554'),(520,'course_duration_limits','0006_auto_20190308_1447','2019-03-11 16:27:22.347994'),(521,'content_type_gating','0007_auto_20190311_1919','2019-03-12 16:11:14.076560'),(522,'course_duration_limits','0007_auto_20190311_1919','2019-03-12 16:11:17.332778'),(523,'announcements','0001_initial','2019-03-18 20:54:59.708245'),(524,'content_type_gating','0008_auto_20190313_1634','2019-03-18 20:55:00.145074'),(525,'course_duration_limits','0008_auto_20190313_1634','2019-03-18 20:55:00.800059'),(526,'enterprise','0063_systemwideenterpriserole_description','2019-03-21 18:40:50.646407'),(527,'enterprise','0064_enterprisefeaturerole_enterprisefeatureuserroleassignment','2019-03-28 19:29:40.049122'),(528,'enterprise','0065_add_enterprise_feature_roles','2019-03-28 19:29:40.122825'),(529,'enterprise','0066_add_system_wide_enterprise_operator_role','2019-03-28 19:29:40.190059'),(530,'student','0020_auto_20190227_2019','2019-04-01 21:47:10.285726'),(531,'certificates','0015_add_masters_choice','2019-04-05 14:56:54.180634'),(532,'enterprise','0067_add_role_based_access_control_switch','2019-04-08 20:44:56.835675'),(533,'program_enrollments','0001_initial','2019-04-10 20:25:28.810529'),(534,'program_enrollments','0002_historicalprogramcourseenrollment_programcourseenrollment','2019-04-18 16:07:31.718124'),(535,'third_party_auth','0023_auto_20190418_2033','2019-04-24 13:53:47.057323'),(536,'program_enrollments','0003_auto_20190424_1622','2019-04-24 16:34:31.400886'),(537,'courseware','0008_move_idde_to_edx_when','2019-04-25 14:14:01.833602'),(538,'edx_when','0001_initial','2019-04-25 14:14:04.077675'),(539,'edx_when','0002_auto_20190318_1736','2019-04-25 14:14:06.472260'),(540,'edx_when','0003_auto_20190402_1501','2019-04-25 14:14:08.565796'); +INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2019-02-06 07:56:07.314317'),(2,'auth','0001_initial','2019-02-06 07:56:07.832368'),(3,'admin','0001_initial','2019-02-06 07:56:07.961256'),(4,'admin','0002_logentry_remove_auto_add','2019-02-06 07:56:08.013912'),(5,'sites','0001_initial','2019-02-06 07:56:08.072888'),(6,'contenttypes','0002_remove_content_type_name','2019-02-06 07:56:08.230528'),(7,'api_admin','0001_initial','2019-02-06 07:56:08.454101'),(8,'api_admin','0002_auto_20160325_1604','2019-02-06 07:56:08.533622'),(9,'api_admin','0003_auto_20160404_1618','2019-02-06 07:56:08.983603'),(10,'api_admin','0004_auto_20160412_1506','2019-02-06 07:56:09.311723'),(11,'api_admin','0005_auto_20160414_1232','2019-02-06 07:56:09.410291'),(12,'api_admin','0006_catalog','2019-02-06 07:56:09.439372'),(13,'api_admin','0007_delete_historical_api_records','2019-02-06 07:56:09.673117'),(14,'assessment','0001_initial','2019-02-06 07:56:11.477983'),(15,'assessment','0002_staffworkflow','2019-02-06 07:56:11.625937'),(16,'assessment','0003_expand_course_id','2019-02-06 07:56:11.815858'),(17,'auth','0002_alter_permission_name_max_length','2019-02-06 07:56:11.891156'),(18,'auth','0003_alter_user_email_max_length','2019-02-06 07:56:11.975525'),(19,'auth','0004_alter_user_username_opts','2019-02-06 07:56:12.013750'),(20,'auth','0005_alter_user_last_login_null','2019-02-06 07:56:12.096481'),(21,'auth','0006_require_contenttypes_0002','2019-02-06 07:56:12.108286'),(22,'auth','0007_alter_validators_add_error_messages','2019-02-06 07:56:12.164989'),(23,'auth','0008_alter_user_username_max_length','2019-02-06 07:56:12.240860'),(24,'instructor_task','0001_initial','2019-02-06 07:56:12.395820'),(25,'certificates','0001_initial','2019-02-06 07:56:13.480164'),(26,'certificates','0002_data__certificatehtmlviewconfiguration_data','2019-02-06 07:56:13.607503'),(27,'certificates','0003_data__default_modes','2019-02-06 07:56:13.751659'),(28,'certificates','0004_certificategenerationhistory','2019-02-06 07:56:13.904399'),(29,'certificates','0005_auto_20151208_0801','2019-02-06 07:56:13.986383'),(30,'certificates','0006_certificatetemplateasset_asset_slug','2019-02-06 07:56:14.058304'),(31,'certificates','0007_certificateinvalidation','2019-02-06 07:56:14.210453'),(32,'badges','0001_initial','2019-02-06 07:56:14.782804'),(33,'badges','0002_data__migrate_assertions','2019-02-06 07:56:15.175628'),(34,'badges','0003_schema__add_event_configuration','2019-02-06 07:56:15.324266'),(35,'block_structure','0001_config','2019-02-06 07:56:15.455000'),(36,'block_structure','0002_blockstructuremodel','2019-02-06 07:56:15.522120'),(37,'block_structure','0003_blockstructuremodel_storage','2019-02-06 07:56:15.564915'),(38,'block_structure','0004_blockstructuremodel_usagekeywithrun','2019-02-06 07:56:15.616240'),(39,'bookmarks','0001_initial','2019-02-06 07:56:16.017402'),(40,'branding','0001_initial','2019-02-06 07:56:16.267188'),(41,'course_modes','0001_initial','2019-02-06 07:56:16.438443'),(42,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2019-02-06 07:56:16.519337'),(43,'course_modes','0003_auto_20151113_1443','2019-02-06 07:56:16.576659'),(44,'course_modes','0004_auto_20151113_1457','2019-02-06 07:56:16.732369'),(45,'course_modes','0005_auto_20151217_0958','2019-02-06 07:56:16.788036'),(46,'course_modes','0006_auto_20160208_1407','2019-02-06 07:56:16.883873'),(47,'course_modes','0007_coursemode_bulk_sku','2019-02-06 07:56:17.029222'),(48,'course_groups','0001_initial','2019-02-06 07:56:18.181254'),(49,'bulk_email','0001_initial','2019-02-06 07:56:18.660435'),(50,'bulk_email','0002_data__load_course_email_template','2019-02-06 07:56:18.937143'),(51,'bulk_email','0003_config_model_feature_flag','2019-02-06 07:56:19.093038'),(52,'bulk_email','0004_add_email_targets','2019-02-06 07:56:19.788595'),(53,'bulk_email','0005_move_target_data','2019-02-06 07:56:19.959402'),(54,'bulk_email','0006_course_mode_targets','2019-02-06 07:56:20.165336'),(55,'catalog','0001_initial','2019-02-06 07:56:20.308745'),(56,'catalog','0002_catalogintegration_username','2019-02-06 07:56:20.439737'),(57,'catalog','0003_catalogintegration_page_size','2019-02-06 07:56:20.584307'),(58,'catalog','0004_auto_20170616_0618','2019-02-06 07:56:20.692298'),(59,'catalog','0005_catalogintegration_long_term_cache_ttl','2019-02-06 07:56:20.821560'),(60,'discussion_common','0001_initial','2019-02-06 07:56:21.271577'),(61,'discussion_common','0002_forumsconfig','2019-02-06 07:56:21.463632'),(62,'verified_track_content','0001_initial','2019-02-06 07:56:21.537783'),(63,'course_overviews','0001_initial','2019-02-06 07:56:21.715657'),(64,'course_overviews','0002_add_course_catalog_fields','2019-02-06 07:56:21.984772'),(65,'course_overviews','0003_courseoverviewgeneratedhistory','2019-02-06 07:56:22.053252'),(66,'course_overviews','0004_courseoverview_org','2019-02-06 07:56:22.134954'),(67,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2019-02-06 07:56:22.184071'),(68,'course_overviews','0006_courseoverviewimageset','2019-02-06 07:56:22.290455'),(69,'course_overviews','0007_courseoverviewimageconfig','2019-02-06 07:56:22.466348'),(70,'course_overviews','0008_remove_courseoverview_facebook_url','2019-02-06 07:56:22.484576'),(71,'course_overviews','0009_readd_facebook_url','2019-02-06 07:56:22.501725'),(72,'course_overviews','0010_auto_20160329_2317','2019-02-06 07:56:22.645825'),(73,'ccx','0001_initial','2019-02-06 07:56:23.183002'),(74,'ccx','0002_customcourseforedx_structure_json','2019-02-06 07:56:23.289052'),(75,'ccx','0003_add_master_course_staff_in_ccx','2019-02-06 07:56:23.840989'),(76,'ccx','0004_seed_forum_roles_in_ccx_courses','2019-02-06 07:56:23.988777'),(77,'ccx','0005_change_ccx_coach_to_staff','2019-02-06 07:56:24.160387'),(78,'ccx','0006_set_display_name_as_override','2019-02-06 07:56:24.337876'),(79,'ccxcon','0001_initial_ccxcon_model','2019-02-06 07:56:24.409092'),(80,'ccxcon','0002_auto_20160325_0407','2019-02-06 07:56:24.470172'),(81,'djcelery','0001_initial','2019-02-06 07:56:25.046777'),(82,'celery_utils','0001_initial','2019-02-06 07:56:25.165469'),(83,'celery_utils','0002_chordable_django_backend','2019-02-06 07:56:25.339734'),(84,'certificates','0008_schema__remove_badges','2019-02-06 07:56:25.535263'),(85,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2019-02-06 07:56:25.851268'),(86,'certificates','0010_certificatetemplate_language','2019-02-06 07:56:25.927039'),(87,'certificates','0011_certificatetemplate_alter_unique','2019-02-06 07:56:26.154544'),(88,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2019-02-06 07:56:26.228554'),(89,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2019-02-06 07:56:26.310926'),(90,'certificates','0014_change_eligible_certs_manager','2019-02-06 07:56:26.373051'),(91,'commerce','0001_data__add_ecommerce_service_user','2019-02-06 07:56:26.595906'),(92,'commerce','0002_commerceconfiguration','2019-02-06 07:56:26.698815'),(93,'commerce','0003_auto_20160329_0709','2019-02-06 07:56:26.761254'),(94,'commerce','0004_auto_20160531_0950','2019-02-06 07:56:27.150989'),(95,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2019-02-06 07:56:27.241421'),(96,'commerce','0006_auto_20170424_1734','2019-02-06 07:56:27.316222'),(97,'commerce','0007_auto_20180313_0609','2019-02-06 07:56:27.466841'),(98,'completion','0001_initial','2019-02-06 07:56:27.696977'),(99,'completion','0002_auto_20180125_1510','2019-02-06 07:56:27.757853'),(100,'enterprise','0001_initial','2019-02-06 07:56:28.027244'),(101,'enterprise','0002_enterprisecustomerbrandingconfiguration','2019-02-06 07:56:28.117647'),(102,'enterprise','0003_auto_20161104_0937','2019-02-06 07:56:28.428631'),(103,'enterprise','0004_auto_20161114_0434','2019-02-06 07:56:28.594141'),(104,'enterprise','0005_pendingenterprisecustomeruser','2019-02-06 07:56:28.710577'),(105,'enterprise','0006_auto_20161121_0241','2019-02-06 07:56:28.775663'),(106,'enterprise','0007_auto_20161109_1511','2019-02-06 07:56:28.924039'),(107,'enterprise','0008_auto_20161124_2355','2019-02-06 07:56:29.200628'),(108,'enterprise','0009_auto_20161130_1651','2019-02-06 07:56:29.740933'),(109,'enterprise','0010_auto_20161222_1212','2019-02-06 07:56:29.889801'),(110,'enterprise','0011_enterprisecustomerentitlement_historicalenterprisecustomerentitlement','2019-02-06 07:56:30.134143'),(111,'enterprise','0012_auto_20170125_1033','2019-02-06 07:56:30.264122'),(112,'enterprise','0013_auto_20170125_1157','2019-02-06 07:56:30.893749'),(113,'enterprise','0014_enrollmentnotificationemailtemplate_historicalenrollmentnotificationemailtemplate','2019-02-06 07:56:31.215731'),(114,'enterprise','0015_auto_20170130_0003','2019-02-06 07:56:31.450278'),(115,'enterprise','0016_auto_20170405_0647','2019-02-06 07:56:32.231656'),(116,'enterprise','0017_auto_20170508_1341','2019-02-06 07:56:32.492394'),(117,'enterprise','0018_auto_20170511_1357','2019-02-06 07:56:32.686868'),(118,'enterprise','0019_auto_20170606_1853','2019-02-06 07:56:32.884924'),(119,'enterprise','0020_auto_20170624_2316','2019-02-06 07:56:33.722514'),(120,'enterprise','0021_auto_20170711_0712','2019-02-06 07:56:34.290994'),(121,'enterprise','0022_auto_20170720_1543','2019-02-06 07:56:34.459932'),(122,'enterprise','0023_audit_data_reporting_flag','2019-02-06 07:56:34.693710'),(123,'enterprise','0024_enterprisecustomercatalog_historicalenterprisecustomercatalog','2019-02-06 07:56:34.991211'),(124,'enterprise','0025_auto_20170828_1412','2019-02-06 07:56:35.555899'),(125,'enterprise','0026_make_require_account_level_consent_nullable','2019-02-06 07:56:35.765541'),(126,'enterprise','0027_remove_account_level_consent','2019-02-06 07:56:36.799493'),(127,'enterprise','0028_link_enterprise_to_enrollment_template','2019-02-06 07:56:37.434413'),(128,'enterprise','0029_auto_20170925_1909','2019-02-06 07:56:37.650440'),(129,'enterprise','0030_auto_20171005_1600','2019-02-06 07:56:38.219936'),(130,'enterprise','0031_auto_20171012_1249','2019-02-06 07:56:38.438979'),(131,'enterprise','0032_reporting_model','2019-02-06 07:56:38.594362'),(132,'enterprise','0033_add_history_change_reason_field','2019-02-06 07:56:39.182772'),(133,'enterprise','0034_auto_20171023_0727','2019-02-06 07:56:39.321896'),(134,'enterprise','0035_auto_20171212_1129','2019-02-06 07:56:39.517158'),(135,'enterprise','0036_sftp_reporting_support','2019-02-06 07:56:39.958256'),(136,'enterprise','0037_auto_20180110_0450','2019-02-06 07:56:40.144689'),(137,'enterprise','0038_auto_20180122_1427','2019-02-06 07:56:40.326004'),(138,'enterprise','0039_auto_20180129_1034','2019-02-06 07:56:40.539093'),(139,'enterprise','0040_auto_20180129_1428','2019-02-06 07:56:40.854288'),(140,'enterprise','0041_auto_20180212_1507','2019-02-06 07:56:41.037158'),(141,'consent','0001_initial','2019-02-06 07:56:41.608778'),(142,'consent','0002_migrate_to_new_data_sharing_consent','2019-02-06 07:56:42.267785'),(143,'consent','0003_historicaldatasharingconsent_history_change_reason','2019-02-06 07:56:42.405847'),(144,'consent','0004_datasharingconsenttextoverrides','2019-02-06 07:56:42.584250'),(145,'sites','0002_alter_domain_unique','2019-02-06 07:56:42.663878'),(146,'course_overviews','0011_courseoverview_marketing_url','2019-02-06 07:56:42.745921'),(147,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2019-02-06 07:56:42.834692'),(148,'course_overviews','0013_courseoverview_language','2019-02-06 07:56:42.913480'),(149,'course_overviews','0014_courseoverview_certificate_available_date','2019-02-06 07:56:42.991669'),(150,'content_type_gating','0001_initial','2019-02-06 07:56:43.235932'),(151,'content_type_gating','0002_auto_20181119_0959','2019-02-06 07:56:43.426345'),(152,'content_type_gating','0003_auto_20181128_1407','2019-02-06 07:56:43.580657'),(153,'content_type_gating','0004_auto_20181128_1521','2019-02-06 07:56:43.695613'),(154,'contentserver','0001_initial','2019-02-06 07:56:43.851239'),(155,'contentserver','0002_cdnuseragentsconfig','2019-02-06 07:56:44.018561'),(156,'cors_csrf','0001_initial','2019-02-06 07:56:44.181287'),(157,'course_action_state','0001_initial','2019-02-06 07:56:44.503331'),(158,'course_duration_limits','0001_initial','2019-02-06 07:56:44.746279'),(159,'course_duration_limits','0002_auto_20181119_0959','2019-02-06 07:56:44.877465'),(160,'course_duration_limits','0003_auto_20181128_1407','2019-02-06 07:56:45.039785'),(161,'course_duration_limits','0004_auto_20181128_1521','2019-02-06 07:56:45.182919'),(162,'course_goals','0001_initial','2019-02-06 07:56:45.519690'),(163,'course_goals','0002_auto_20171010_1129','2019-02-06 07:56:45.644315'),(164,'course_groups','0002_change_inline_default_cohort_value','2019-02-06 07:56:45.709570'),(165,'course_groups','0003_auto_20170609_1455','2019-02-06 07:56:45.983496'),(166,'course_modes','0008_course_key_field_to_foreign_key','2019-02-06 07:56:46.593883'),(167,'course_modes','0009_suggested_prices_to_charfield','2019-02-06 07:56:46.661433'),(168,'course_modes','0010_archived_suggested_prices_to_charfield','2019-02-06 07:56:46.723034'),(169,'course_modes','0011_change_regex_for_comma_separated_ints','2019-02-06 07:56:46.829468'),(170,'courseware','0001_initial','2019-02-06 07:56:49.952932'),(171,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2019-02-06 07:56:50.721374'),(172,'courseware','0003_auto_20170825_0935','2019-02-06 07:56:50.903279'),(173,'courseware','0004_auto_20171010_1639','2019-02-06 07:56:51.166884'),(174,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2019-02-06 07:56:51.597870'),(175,'courseware','0006_remove_module_id_index','2019-02-06 07:56:51.781895'),(176,'courseware','0007_remove_done_index','2019-02-06 07:56:51.968472'),(177,'coursewarehistoryextended','0001_initial','2019-02-06 07:56:52.632278'),(178,'coursewarehistoryextended','0002_force_studentmodule_index','2019-02-06 07:56:52.709752'),(179,'crawlers','0001_initial','2019-02-06 07:56:53.074661'),(180,'crawlers','0002_auto_20170419_0018','2019-02-06 07:56:53.203552'),(181,'credentials','0001_initial','2019-02-06 07:56:53.404087'),(182,'credentials','0002_auto_20160325_0631','2019-02-06 07:56:53.531754'),(183,'credentials','0003_auto_20170525_1109','2019-02-06 07:56:53.709376'),(184,'credentials','0004_notifycredentialsconfig','2019-02-06 07:56:53.854337'),(185,'credit','0001_initial','2019-02-06 07:56:55.324738'),(186,'credit','0002_creditconfig','2019-02-06 07:56:55.478476'),(187,'credit','0003_auto_20160511_2227','2019-02-06 07:56:55.552916'),(188,'credit','0004_delete_historical_credit_records','2019-02-06 07:56:56.180340'),(189,'dark_lang','0001_initial','2019-02-06 07:56:56.341474'),(190,'dark_lang','0002_data__enable_on_install','2019-02-06 07:56:56.783194'),(191,'dark_lang','0003_auto_20180425_0359','2019-02-06 07:56:57.055067'),(192,'database_fixups','0001_initial','2019-02-06 07:56:57.627927'),(193,'degreed','0001_initial','2019-02-06 07:56:58.969941'),(194,'degreed','0002_auto_20180104_0103','2019-02-06 07:56:59.471941'),(195,'degreed','0003_auto_20180109_0712','2019-02-06 07:56:59.731040'),(196,'degreed','0004_auto_20180306_1251','2019-02-06 07:56:59.997860'),(197,'degreed','0005_auto_20180807_1302','2019-02-06 07:57:02.069830'),(198,'degreed','0006_upgrade_django_simple_history','2019-02-06 07:57:02.273708'),(199,'discussion_common','0003_enable_forums','2019-02-06 07:57:02.626514'),(200,'discussion_common','0004_auto_20161117_1209','2019-02-06 07:57:02.820104'),(201,'discussion_common','0005_coursediscussionsettings','2019-02-06 07:57:02.896624'),(202,'discussion_common','0006_coursediscussionsettings_discussions_id_map','2019-02-06 07:57:02.998038'),(203,'discussion_common','0007_discussionsidmapping','2019-02-06 07:57:03.083783'),(204,'discussion_common','0008_role_user_index','2019-02-06 07:57:03.168933'),(205,'django_notify','0001_initial','2019-02-06 07:57:04.348365'),(206,'django_openid_auth','0001_initial','2019-02-06 07:57:04.778823'),(207,'oauth2','0001_initial','2019-02-06 07:57:06.639640'),(208,'edx_oauth2_provider','0001_initial','2019-02-06 07:57:06.912829'),(209,'edx_proctoring','0001_initial','2019-02-06 07:57:11.833284'),(210,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2019-02-06 07:57:12.158509'),(211,'edx_proctoring','0003_auto_20160101_0525','2019-02-06 07:57:12.624375'),(212,'edx_proctoring','0004_auto_20160201_0523','2019-02-06 07:57:13.412490'),(213,'edx_proctoring','0005_proctoredexam_hide_after_due','2019-02-06 07:57:13.542482'),(214,'edx_proctoring','0006_allowed_time_limit_mins','2019-02-06 07:57:13.995842'),(215,'edx_proctoring','0007_proctoredexam_backend','2019-02-06 07:57:14.113562'),(216,'edx_proctoring','0008_auto_20181116_1551','2019-02-06 07:57:14.705891'),(217,'edx_proctoring','0009_proctoredexamreviewpolicy_remove_rules','2019-02-06 07:57:15.116276'),(218,'edxval','0001_initial','2019-02-06 07:57:15.863533'),(219,'edxval','0002_data__default_profiles','2019-02-06 07:57:16.818661'),(220,'edxval','0003_coursevideo_is_hidden','2019-02-06 07:57:16.918246'),(221,'edxval','0004_data__add_hls_profile','2019-02-06 07:57:17.289957'),(222,'edxval','0005_videoimage','2019-02-06 07:57:17.492770'),(223,'edxval','0006_auto_20171009_0725','2019-02-06 07:57:17.716551'),(224,'edxval','0007_transcript_credentials_state','2019-02-06 07:57:17.845730'),(225,'edxval','0008_remove_subtitles','2019-02-06 07:57:17.992131'),(226,'edxval','0009_auto_20171127_0406','2019-02-06 07:57:18.060122'),(227,'edxval','0010_add_video_as_foreign_key','2019-02-06 07:57:18.365704'),(228,'edxval','0011_data__add_audio_mp3_profile','2019-02-06 07:57:18.730704'),(229,'email_marketing','0001_initial','2019-02-06 07:57:19.051984'),(230,'email_marketing','0002_auto_20160623_1656','2019-02-06 07:57:21.789475'),(231,'email_marketing','0003_auto_20160715_1145','2019-02-06 07:57:22.963260'),(232,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2019-02-06 07:57:23.293836'),(233,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2019-02-06 07:57:23.617029'),(234,'email_marketing','0006_auto_20170711_0615','2019-02-06 07:57:24.245380'),(235,'email_marketing','0007_auto_20170809_0653','2019-02-06 07:57:24.897713'),(236,'email_marketing','0008_auto_20170809_0539','2019-02-06 07:57:25.325581'),(237,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2019-02-06 07:57:25.603626'),(238,'email_marketing','0010_auto_20180425_0800','2019-02-06 07:57:26.312049'),(239,'embargo','0001_initial','2019-02-06 07:57:28.072877'),(240,'embargo','0002_data__add_countries','2019-02-06 07:57:29.877570'),(241,'enterprise','0042_replace_sensitive_sso_username','2019-02-06 07:57:30.224348'),(242,'enterprise','0043_auto_20180507_0138','2019-02-06 07:57:30.838462'),(243,'enterprise','0044_reporting_config_multiple_types','2019-02-06 07:57:31.233674'),(244,'enterprise','0045_report_type_json','2019-02-06 07:57:31.322889'),(245,'enterprise','0046_remove_unique_constraints','2019-02-06 07:57:31.424455'),(246,'enterprise','0047_auto_20180517_0457','2019-02-06 07:57:31.785098'),(247,'enterprise','0048_enterprisecustomeruser_active','2019-02-06 07:57:31.904647'),(248,'enterprise','0049_auto_20180531_0321','2019-02-06 07:57:32.509863'),(249,'enterprise','0050_progress_v2','2019-02-06 07:57:33.253255'),(250,'enterprise','0051_add_enterprise_slug','2019-02-06 07:57:34.073175'),(251,'enterprise','0052_create_unique_slugs','2019-02-06 07:57:34.414601'),(252,'enterprise','0053_pendingenrollment_cohort_name','2019-02-06 07:57:34.520875'),(253,'enterprise','0053_auto_20180911_0811','2019-02-06 07:57:34.914654'),(254,'enterprise','0054_merge_20180914_1511','2019-02-06 07:57:34.944784'),(255,'enterprise','0055_auto_20181015_1112','2019-02-06 07:57:35.409450'),(256,'enterprise','0056_enterprisecustomerreportingconfiguration_pgp_encryption_key','2019-02-06 07:57:35.545845'),(257,'enterprise','0057_enterprisecustomerreportingconfiguration_enterprise_customer_catalogs','2019-02-06 07:57:35.960406'),(258,'enterprise','0058_auto_20181212_0145','2019-02-06 07:57:37.113916'),(259,'enterprise','0059_add_code_management_portal_config','2019-02-06 07:57:37.575928'),(260,'enterprise','0060_upgrade_django_simple_history','2019-02-06 07:57:38.213269'),(261,'student','0001_initial','2019-02-06 07:57:47.588358'),(262,'student','0002_auto_20151208_1034','2019-02-06 07:57:47.836707'),(263,'student','0003_auto_20160516_0938','2019-02-06 07:57:48.149932'),(264,'student','0004_auto_20160531_1422','2019-02-06 07:57:48.286460'),(265,'student','0005_auto_20160531_1653','2019-02-06 07:57:48.431860'),(266,'student','0006_logoutviewconfiguration','2019-02-06 07:57:48.974430'),(267,'student','0007_registrationcookieconfiguration','2019-02-06 07:57:49.147001'),(268,'student','0008_auto_20161117_1209','2019-02-06 07:57:49.263656'),(269,'student','0009_auto_20170111_0422','2019-02-06 07:57:49.377186'),(270,'student','0010_auto_20170207_0458','2019-02-06 07:57:49.407334'),(271,'student','0011_course_key_field_to_foreign_key','2019-02-06 07:57:50.975260'),(272,'student','0012_sociallink','2019-02-06 07:57:51.409953'),(273,'student','0013_delete_historical_enrollment_records','2019-02-06 07:57:52.968613'),(274,'entitlements','0001_initial','2019-02-06 07:57:53.425447'),(275,'entitlements','0002_auto_20171102_0719','2019-02-06 07:57:55.014484'),(276,'entitlements','0003_auto_20171205_1431','2019-02-06 07:57:57.282703'),(277,'entitlements','0004_auto_20171206_1729','2019-02-06 07:57:57.704486'),(278,'entitlements','0005_courseentitlementsupportdetail','2019-02-06 07:57:58.400522'),(279,'entitlements','0006_courseentitlementsupportdetail_action','2019-02-06 07:57:59.000339'),(280,'entitlements','0007_change_expiration_period_default','2019-02-06 07:57:59.217527'),(281,'entitlements','0008_auto_20180328_1107','2019-02-06 07:58:00.023003'),(282,'entitlements','0009_courseentitlement_refund_locked','2019-02-06 07:58:00.552995'),(283,'entitlements','0010_backfill_refund_lock','2019-02-06 07:58:01.471558'),(284,'experiments','0001_initial','2019-02-06 07:58:02.990331'),(285,'experiments','0002_auto_20170627_1402','2019-02-06 07:58:03.207899'),(286,'experiments','0003_auto_20170713_1148','2019-02-06 07:58:03.289623'),(287,'external_auth','0001_initial','2019-02-06 07:58:04.122332'),(288,'grades','0001_initial','2019-02-06 07:58:04.449795'),(289,'grades','0002_rename_last_edited_field','2019-02-06 07:58:04.542638'),(290,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2019-02-06 07:58:05.727274'),(291,'grades','0004_visibleblocks_course_id','2019-02-06 07:58:05.867193'),(292,'grades','0005_multiple_course_flags','2019-02-06 07:58:06.312646'),(293,'grades','0006_persistent_course_grades','2019-02-06 07:58:06.568446'),(294,'grades','0007_add_passed_timestamp_column','2019-02-06 07:58:07.247313'),(295,'grades','0008_persistentsubsectiongrade_first_attempted','2019-02-06 07:58:07.349076'),(296,'grades','0009_auto_20170111_1507','2019-02-06 07:58:07.498641'),(297,'grades','0010_auto_20170112_1156','2019-02-06 07:58:07.583662'),(298,'grades','0011_null_edited_time','2019-02-06 07:58:07.916494'),(299,'grades','0012_computegradessetting','2019-02-06 07:58:08.432066'),(300,'grades','0013_persistentsubsectiongradeoverride','2019-02-06 07:58:08.633723'),(301,'grades','0014_persistentsubsectiongradeoverridehistory','2019-02-06 07:58:09.160210'),(302,'instructor_task','0002_gradereportsetting','2019-02-06 07:58:09.580204'),(303,'waffle','0001_initial','2019-02-06 07:58:10.444295'),(304,'sap_success_factors','0001_initial','2019-02-06 07:58:12.042509'),(305,'sap_success_factors','0002_auto_20170224_1545','2019-02-06 07:58:13.979236'),(306,'sap_success_factors','0003_auto_20170317_1402','2019-02-06 07:58:14.701821'),(307,'sap_success_factors','0004_catalogtransmissionaudit_audit_summary','2019-02-06 07:58:14.797945'),(308,'sap_success_factors','0005_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 07:58:15.137352'),(309,'sap_success_factors','0006_sapsuccessfactors_use_enterprise_enrollment_page_waffle_flag','2019-02-06 07:58:15.692938'),(310,'sap_success_factors','0007_remove_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 07:58:16.090806'),(311,'sap_success_factors','0008_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 07:58:16.886204'),(312,'sap_success_factors','0009_sapsuccessfactors_remove_enterprise_enrollment_page_waffle_flag','2019-02-06 07:58:17.493133'),(313,'sap_success_factors','0010_move_audit_tables_to_base_integrated_channel','2019-02-06 07:58:18.256051'),(314,'integrated_channel','0001_initial','2019-02-06 07:58:18.434760'),(315,'integrated_channel','0002_delete_enterpriseintegratedchannel','2019-02-06 07:58:18.534852'),(316,'integrated_channel','0003_catalogtransmissionaudit_learnerdatatransmissionaudit','2019-02-06 07:58:18.697143'),(317,'integrated_channel','0004_catalogtransmissionaudit_channel','2019-02-06 07:58:18.821246'),(318,'integrated_channel','0005_auto_20180306_1251','2019-02-06 07:58:19.378821'),(319,'integrated_channel','0006_delete_catalogtransmissionaudit','2019-02-06 07:58:19.463872'),(320,'lms_xblock','0001_initial','2019-02-06 07:58:19.938021'),(321,'microsite_configuration','0001_initial','2019-02-06 07:58:24.417944'),(322,'microsite_configuration','0002_auto_20160202_0228','2019-02-06 07:58:24.704162'),(323,'microsite_configuration','0003_delete_historical_records','2019-02-06 07:58:27.217560'),(324,'milestones','0001_initial','2019-02-06 07:58:28.438298'),(325,'milestones','0002_data__seed_relationship_types','2019-02-06 07:58:29.074808'),(326,'milestones','0003_coursecontentmilestone_requirements','2019-02-06 07:58:29.198318'),(327,'milestones','0004_auto_20151221_1445','2019-02-06 07:58:29.608126'),(328,'mobile_api','0001_initial','2019-02-06 07:58:30.546212'),(329,'mobile_api','0002_auto_20160406_0904','2019-02-06 07:58:30.725452'),(330,'mobile_api','0003_ignore_mobile_available_flag','2019-02-06 07:58:31.637551'),(331,'notes','0001_initial','2019-02-06 07:58:32.158209'),(332,'oauth2','0002_auto_20160404_0813','2019-02-06 07:58:33.398358'),(333,'oauth2','0003_client_logout_uri','2019-02-06 07:58:33.785963'),(334,'oauth2','0004_add_index_on_grant_expires','2019-02-06 07:58:34.178788'),(335,'oauth2','0005_grant_nonce','2019-02-06 07:58:35.284863'),(336,'organizations','0001_initial','2019-02-06 07:58:35.646051'),(337,'organizations','0002_auto_20170117_1434','2019-02-06 07:58:35.750682'),(338,'organizations','0003_auto_20170221_1138','2019-02-06 07:58:35.925588'),(339,'organizations','0004_auto_20170413_2315','2019-02-06 07:58:36.060193'),(340,'organizations','0005_auto_20171116_0640','2019-02-06 07:58:36.145008'),(341,'organizations','0006_auto_20171207_0259','2019-02-06 07:58:36.257476'),(342,'oauth2_provider','0001_initial','2019-02-06 07:58:38.097999'),(343,'oauth_dispatch','0001_initial','2019-02-06 07:58:38.563660'),(344,'oauth_dispatch','0002_scopedapplication_scopedapplicationorganization','2019-02-06 07:58:40.054311'),(345,'oauth_dispatch','0003_application_data','2019-02-06 07:58:40.676680'),(346,'oauth_dispatch','0004_auto_20180626_1349','2019-02-06 07:58:43.112430'),(347,'oauth_dispatch','0005_applicationaccess_type','2019-02-06 07:58:43.714100'),(348,'oauth_dispatch','0006_drop_application_id_constraints','2019-02-06 07:58:44.030090'),(349,'oauth2_provider','0002_08_updates','2019-02-06 07:58:44.450850'),(350,'oauth2_provider','0003_auto_20160316_1503','2019-02-06 07:58:44.640899'),(351,'oauth2_provider','0004_auto_20160525_1623','2019-02-06 07:58:44.975564'),(352,'oauth2_provider','0005_auto_20170514_1141','2019-02-06 07:58:47.370031'),(353,'oauth2_provider','0006_auto_20171214_2232','2019-02-06 07:58:48.599294'),(354,'oauth_dispatch','0007_restore_application_id_constraints','2019-02-06 07:58:49.006205'),(355,'oauth_provider','0001_initial','2019-02-06 07:58:49.563238'),(356,'problem_builder','0001_initial','2019-02-06 07:58:49.794124'),(357,'problem_builder','0002_auto_20160121_1525','2019-02-06 07:58:50.200720'),(358,'problem_builder','0003_auto_20161124_0755','2019-02-06 07:58:50.413858'),(359,'problem_builder','0004_copy_course_ids','2019-02-06 07:58:51.128055'),(360,'problem_builder','0005_auto_20170112_1021','2019-02-06 07:58:51.340194'),(361,'problem_builder','0006_remove_deprecated_course_id','2019-02-06 07:58:51.564692'),(362,'programs','0001_initial','2019-02-06 07:58:51.747931'),(363,'programs','0002_programsapiconfig_cache_ttl','2019-02-06 07:58:51.898433'),(364,'programs','0003_auto_20151120_1613','2019-02-06 07:58:53.094465'),(365,'programs','0004_programsapiconfig_enable_certification','2019-02-06 07:58:53.288122'),(366,'programs','0005_programsapiconfig_max_retries','2019-02-06 07:58:53.445000'),(367,'programs','0006_programsapiconfig_xseries_ad_enabled','2019-02-06 07:58:53.602411'),(368,'programs','0007_programsapiconfig_program_listing_enabled','2019-02-06 07:58:53.755138'),(369,'programs','0008_programsapiconfig_program_details_enabled','2019-02-06 07:58:53.875763'),(370,'programs','0009_programsapiconfig_marketing_path','2019-02-06 07:58:54.018436'),(371,'programs','0010_auto_20170204_2332','2019-02-06 07:58:54.237222'),(372,'programs','0011_auto_20170301_1844','2019-02-06 07:58:55.604408'),(373,'programs','0012_auto_20170419_0018','2019-02-06 07:58:55.728622'),(374,'redirects','0001_initial','2019-02-06 07:58:56.618741'),(375,'rss_proxy','0001_initial','2019-02-06 07:58:56.722680'),(376,'sap_success_factors','0011_auto_20180104_0103','2019-02-06 07:59:01.328739'),(377,'sap_success_factors','0012_auto_20180109_0712','2019-02-06 07:59:01.778378'),(378,'sap_success_factors','0013_auto_20180306_1251','2019-02-06 07:59:02.285821'),(379,'sap_success_factors','0014_drop_historical_table','2019-02-06 07:59:02.903520'),(380,'sap_success_factors','0015_auto_20180510_1259','2019-02-06 07:59:03.734759'),(381,'sap_success_factors','0016_sapsuccessfactorsenterprisecustomerconfiguration_additional_locales','2019-02-06 07:59:03.878684'),(382,'sap_success_factors','0017_sapsuccessfactorsglobalconfiguration_search_student_api_path','2019-02-06 07:59:04.766539'),(383,'schedules','0001_initial','2019-02-06 07:59:05.179663'),(384,'schedules','0002_auto_20170816_1532','2019-02-06 07:59:05.397766'),(385,'schedules','0003_scheduleconfig','2019-02-06 07:59:05.977222'),(386,'schedules','0004_auto_20170922_1428','2019-02-06 07:59:06.791066'),(387,'schedules','0005_auto_20171010_1722','2019-02-06 07:59:07.631416'),(388,'schedules','0006_scheduleexperience','2019-02-06 07:59:08.189048'),(389,'schedules','0007_scheduleconfig_hold_back_ratio','2019-02-06 07:59:08.776239'),(390,'self_paced','0001_initial','2019-02-06 07:59:09.799050'),(391,'sessions','0001_initial','2019-02-06 07:59:09.921074'),(392,'shoppingcart','0001_initial','2019-02-06 07:59:21.053818'),(393,'shoppingcart','0002_auto_20151208_1034','2019-02-06 07:59:21.335220'),(394,'shoppingcart','0003_auto_20151217_0958','2019-02-06 07:59:21.599445'),(395,'shoppingcart','0004_change_meta_options','2019-02-06 07:59:21.823322'),(396,'site_configuration','0001_initial','2019-02-06 07:59:22.992881'),(397,'site_configuration','0002_auto_20160720_0231','2019-02-06 07:59:23.853074'),(398,'default','0001_initial','2019-02-06 07:59:25.015201'),(399,'social_auth','0001_initial','2019-02-06 07:59:25.046686'),(400,'default','0002_add_related_name','2019-02-06 07:59:25.500745'),(401,'social_auth','0002_add_related_name','2019-02-06 07:59:25.532177'),(402,'default','0003_alter_email_max_length','2019-02-06 07:59:25.652620'),(403,'social_auth','0003_alter_email_max_length','2019-02-06 07:59:25.690150'),(404,'default','0004_auto_20160423_0400','2019-02-06 07:59:26.074154'),(405,'social_auth','0004_auto_20160423_0400','2019-02-06 07:59:26.105575'),(406,'social_auth','0005_auto_20160727_2333','2019-02-06 07:59:26.241475'),(407,'social_django','0006_partial','2019-02-06 07:59:26.399875'),(408,'social_django','0007_code_timestamp','2019-02-06 07:59:26.566550'),(409,'social_django','0008_partial_timestamp','2019-02-06 07:59:26.712434'),(410,'splash','0001_initial','2019-02-06 07:59:27.288326'),(411,'static_replace','0001_initial','2019-02-06 07:59:27.851106'),(412,'static_replace','0002_assetexcludedextensionsconfig','2019-02-06 07:59:29.178463'),(413,'status','0001_initial','2019-02-06 07:59:30.834233'),(414,'status','0002_update_help_text','2019-02-06 07:59:31.259226'),(415,'student','0014_courseenrollmentallowed_user','2019-02-06 07:59:31.843553'),(416,'student','0015_manualenrollmentaudit_add_role','2019-02-06 07:59:32.339124'),(417,'student','0016_coursenrollment_course_on_delete_do_nothing','2019-02-06 07:59:33.019734'),(418,'student','0017_accountrecovery','2019-02-06 07:59:34.081866'),(419,'student','0018_remove_password_history','2019-02-06 07:59:35.360857'),(420,'student','0019_auto_20181221_0540','2019-02-06 07:59:36.450684'),(421,'submissions','0001_initial','2019-02-06 07:59:37.468217'),(422,'submissions','0002_auto_20151119_0913','2019-02-06 07:59:37.751719'),(423,'submissions','0003_submission_status','2019-02-06 07:59:37.951880'),(424,'submissions','0004_remove_django_extensions','2019-02-06 07:59:38.080449'),(425,'survey','0001_initial','2019-02-06 07:59:38.937112'),(426,'teams','0001_initial','2019-02-06 07:59:42.234272'),(427,'theming','0001_initial','2019-02-06 07:59:42.964122'),(428,'third_party_auth','0001_initial','2019-02-06 07:59:46.893944'),(429,'third_party_auth','0002_schema__provider_icon_image','2019-02-06 07:59:51.814091'),(430,'third_party_auth','0003_samlproviderconfig_debug_mode','2019-02-06 07:59:52.360263'),(431,'third_party_auth','0004_add_visible_field','2019-02-06 07:59:56.187303'),(432,'third_party_auth','0005_add_site_field','2019-02-06 08:00:00.726584'),(433,'third_party_auth','0006_samlproviderconfig_automatic_refresh_enabled','2019-02-06 08:00:01.267932'),(434,'third_party_auth','0007_auto_20170406_0912','2019-02-06 08:00:02.190874'),(435,'third_party_auth','0008_auto_20170413_1455','2019-02-06 08:00:03.658115'),(436,'third_party_auth','0009_auto_20170415_1144','2019-02-06 08:00:05.420674'),(437,'third_party_auth','0010_add_skip_hinted_login_dialog_field','2019-02-06 08:00:07.334260'),(438,'third_party_auth','0011_auto_20170616_0112','2019-02-06 08:00:07.841081'),(439,'third_party_auth','0012_auto_20170626_1135','2019-02-06 08:00:09.649831'),(440,'third_party_auth','0013_sync_learner_profile_data','2019-02-06 08:00:12.254172'),(441,'third_party_auth','0014_auto_20171222_1233','2019-02-06 08:00:13.935686'),(442,'third_party_auth','0015_samlproviderconfig_archived','2019-02-06 08:00:14.559179'),(443,'third_party_auth','0016_auto_20180130_0938','2019-02-06 08:00:15.656894'),(444,'third_party_auth','0017_remove_icon_class_image_secondary_fields','2019-02-06 08:00:17.597823'),(445,'third_party_auth','0018_auto_20180327_1631','2019-02-06 08:00:20.302724'),(446,'third_party_auth','0019_consolidate_slug','2019-02-06 08:00:23.246774'),(447,'third_party_auth','0020_cleanup_slug_fields','2019-02-06 08:00:25.498101'),(448,'third_party_auth','0021_sso_id_verification','2019-02-06 08:00:27.269685'),(449,'third_party_auth','0022_auto_20181012_0307','2019-02-06 08:00:30.475559'),(450,'thumbnail','0001_initial','2019-02-06 08:00:30.680886'),(451,'track','0001_initial','2019-02-06 08:00:30.998373'),(452,'user_api','0001_initial','2019-02-06 08:00:35.324701'),(453,'user_api','0002_retirementstate_userretirementstatus','2019-02-06 08:00:36.082707'),(454,'user_api','0003_userretirementrequest','2019-02-06 08:00:36.665229'),(455,'user_api','0004_userretirementpartnerreportingstatus','2019-02-06 08:00:37.317791'),(456,'user_authn','0001_data__add_login_service','2019-02-06 08:00:39.270679'),(457,'util','0001_initial','2019-02-06 08:00:39.822745'),(458,'util','0002_data__default_rate_limit_config','2019-02-06 08:00:40.606869'),(459,'verified_track_content','0002_verifiedtrackcohortedcourse_verified_cohort_name','2019-02-06 08:00:40.741152'),(460,'verified_track_content','0003_migrateverifiedtrackcohortssetting','2019-02-06 08:00:41.360407'),(461,'verify_student','0001_initial','2019-02-06 08:00:47.236180'),(462,'verify_student','0002_auto_20151124_1024','2019-02-06 08:00:47.481347'),(463,'verify_student','0003_auto_20151113_1443','2019-02-06 08:00:47.697474'),(464,'verify_student','0004_delete_historical_records','2019-02-06 08:00:47.928549'),(465,'verify_student','0005_remove_deprecated_models','2019-02-06 08:00:53.255639'),(466,'verify_student','0006_ssoverification','2019-02-06 08:00:53.608512'),(467,'verify_student','0007_idverificationaggregate','2019-02-06 08:00:54.126314'),(468,'verify_student','0008_populate_idverificationaggregate','2019-02-06 08:00:55.099295'),(469,'verify_student','0009_remove_id_verification_aggregate','2019-02-06 08:00:55.505989'),(470,'verify_student','0010_manualverification','2019-02-06 08:00:55.733258'),(471,'verify_student','0011_add_fields_to_sspv','2019-02-06 08:00:56.760072'),(472,'video_config','0001_initial','2019-02-06 08:00:57.094097'),(473,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2019-02-06 08:00:57.451972'),(474,'video_config','0003_transcriptmigrationsetting','2019-02-06 08:00:57.665251'),(475,'video_config','0004_transcriptmigrationsetting_command_run','2019-02-06 08:00:57.846477'),(476,'video_config','0005_auto_20180719_0752','2019-02-06 08:00:58.093978'),(477,'video_config','0006_videothumbnailetting_updatedcoursevideos','2019-02-06 08:00:58.479655'),(478,'video_config','0007_videothumbnailsetting_offset','2019-02-06 08:00:58.702464'),(479,'video_pipeline','0001_initial','2019-02-06 08:00:58.930134'),(480,'video_pipeline','0002_auto_20171114_0704','2019-02-06 08:00:59.248554'),(481,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2019-02-06 08:00:59.639240'),(482,'waffle','0002_auto_20161201_0958','2019-02-06 08:00:59.770761'),(483,'waffle_utils','0001_initial','2019-02-06 08:01:00.120690'),(484,'wiki','0001_initial','2019-02-06 08:01:13.521825'),(485,'wiki','0002_remove_article_subscription','2019-02-06 08:01:13.635976'),(486,'wiki','0003_ip_address_conv','2019-02-06 08:01:15.191324'),(487,'wiki','0004_increase_slug_size','2019-02-06 08:01:15.438646'),(488,'wiki','0005_remove_attachments_and_images','2019-02-06 08:01:20.535437'),(489,'workflow','0001_initial','2019-02-06 08:01:20.955248'),(490,'workflow','0002_remove_django_extensions','2019-02-06 08:01:21.089005'),(491,'xapi','0001_initial','2019-02-06 08:01:21.762133'),(492,'xapi','0002_auto_20180726_0142','2019-02-06 08:01:22.140082'),(493,'xblock_django','0001_initial','2019-02-06 08:01:22.817601'),(494,'xblock_django','0002_auto_20160204_0809','2019-02-06 08:01:23.428800'),(495,'xblock_django','0003_add_new_config_models','2019-02-06 08:01:26.720065'),(496,'xblock_django','0004_delete_xblock_disable_config','2019-02-06 08:01:28.046351'),(497,'social_django','0002_add_related_name','2019-02-06 08:01:28.238120'),(498,'social_django','0003_alter_email_max_length','2019-02-06 08:01:28.295485'),(499,'social_django','0004_auto_20160423_0400','2019-02-06 08:01:28.369651'),(500,'social_django','0001_initial','2019-02-06 08:01:28.419547'),(501,'social_django','0005_auto_20160727_2333','2019-02-06 08:01:28.470149'),(502,'contentstore','0001_initial','2019-02-06 08:02:13.717472'),(503,'contentstore','0002_add_assets_page_flag','2019-02-06 08:02:14.894230'),(504,'contentstore','0003_remove_assets_page_flag','2019-02-06 08:02:15.936128'),(505,'course_creators','0001_initial','2019-02-06 08:02:16.677395'),(506,'tagging','0001_initial','2019-02-06 08:02:16.919416'),(507,'tagging','0002_auto_20170116_1541','2019-02-06 08:02:17.057789'),(508,'user_tasks','0001_initial','2019-02-06 08:02:18.095204'),(509,'user_tasks','0002_artifact_file_storage','2019-02-06 08:02:18.200132'),(510,'xblock_config','0001_initial','2019-02-06 08:02:18.497728'),(511,'xblock_config','0002_courseeditltifieldsenabledflag','2019-02-06 08:02:19.039966'),(512,'lti_provider','0001_initial','2019-02-20 13:01:39.285635'),(513,'lti_provider','0002_auto_20160325_0407','2019-02-20 13:01:39.369768'),(514,'lti_provider','0003_auto_20161118_1040','2019-02-20 13:01:39.445830'),(515,'content_type_gating','0005_auto_20190306_1547','2019-03-06 16:00:40.248896'),(516,'course_duration_limits','0005_auto_20190306_1546','2019-03-06 16:00:40.908922'),(517,'enterprise','0061_systemwideenterpriserole_systemwideenterpriseuserroleassignment','2019-03-08 15:47:17.741727'),(518,'enterprise','0062_add_system_wide_enterprise_roles','2019-03-08 15:47:17.809640'),(519,'content_type_gating','0006_auto_20190308_1447','2019-03-11 16:27:21.659554'),(520,'course_duration_limits','0006_auto_20190308_1447','2019-03-11 16:27:22.347994'),(521,'content_type_gating','0007_auto_20190311_1919','2019-03-12 16:11:14.076560'),(522,'course_duration_limits','0007_auto_20190311_1919','2019-03-12 16:11:17.332778'),(523,'announcements','0001_initial','2019-03-18 20:54:59.708245'),(524,'content_type_gating','0008_auto_20190313_1634','2019-03-18 20:55:00.145074'),(525,'course_duration_limits','0008_auto_20190313_1634','2019-03-18 20:55:00.800059'),(526,'enterprise','0063_systemwideenterpriserole_description','2019-03-21 18:40:50.646407'),(527,'enterprise','0064_enterprisefeaturerole_enterprisefeatureuserroleassignment','2019-03-28 19:29:40.049122'),(528,'enterprise','0065_add_enterprise_feature_roles','2019-03-28 19:29:40.122825'),(529,'enterprise','0066_add_system_wide_enterprise_operator_role','2019-03-28 19:29:40.190059'),(530,'student','0020_auto_20190227_2019','2019-04-01 21:47:10.285726'),(531,'certificates','0015_add_masters_choice','2019-04-05 14:56:54.180634'),(532,'enterprise','0067_add_role_based_access_control_switch','2019-04-08 20:44:56.835675'),(533,'program_enrollments','0001_initial','2019-04-10 20:25:28.810529'),(534,'program_enrollments','0002_historicalprogramcourseenrollment_programcourseenrollment','2019-04-18 16:07:31.718124'),(535,'third_party_auth','0023_auto_20190418_2033','2019-04-24 13:53:47.057323'),(536,'program_enrollments','0003_auto_20190424_1622','2019-04-24 16:34:31.400886'),(537,'courseware','0008_move_idde_to_edx_when','2019-04-25 14:14:01.833602'),(538,'edx_when','0001_initial','2019-04-25 14:14:04.077675'),(539,'edx_when','0002_auto_20190318_1736','2019-04-25 14:14:06.472260'),(540,'edx_when','0003_auto_20190402_1501','2019-04-25 14:14:08.565796'); /*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; diff --git a/common/test/db_cache/bok_choy_migrations_data_student_module_history.sql b/common/test/db_cache/bok_choy_migrations_data_student_module_history.sql index 72841f858b..108bfcb7e7 100644 --- a/common/test/db_cache/bok_choy_migrations_data_student_module_history.sql +++ b/common/test/db_cache/bok_choy_migrations_data_student_module_history.sql @@ -21,7 +21,7 @@ LOCK TABLES `django_migrations` WRITE; /*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; -INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2019-02-06 08:03:27.973279'),(2,'auth','0001_initial','2019-02-06 08:03:28.047577'),(3,'admin','0001_initial','2019-02-06 08:03:28.084214'),(4,'admin','0002_logentry_remove_auto_add','2019-02-06 08:03:28.117004'),(5,'sites','0001_initial','2019-02-06 08:03:28.138797'),(6,'contenttypes','0002_remove_content_type_name','2019-02-06 08:03:28.216567'),(7,'api_admin','0001_initial','2019-02-06 08:03:28.285457'),(8,'api_admin','0002_auto_20160325_1604','2019-02-06 08:03:28.307547'),(9,'api_admin','0003_auto_20160404_1618','2019-02-06 08:03:28.500622'),(10,'api_admin','0004_auto_20160412_1506','2019-02-06 08:03:28.633954'),(11,'api_admin','0005_auto_20160414_1232','2019-02-06 08:03:28.673633'),(12,'api_admin','0006_catalog','2019-02-06 08:03:28.696279'),(13,'api_admin','0007_delete_historical_api_records','2019-02-06 08:03:28.816693'),(14,'assessment','0001_initial','2019-02-06 08:03:29.290939'),(15,'assessment','0002_staffworkflow','2019-02-06 08:03:29.313966'),(16,'assessment','0003_expand_course_id','2019-02-06 08:03:29.378298'),(17,'auth','0002_alter_permission_name_max_length','2019-02-06 08:03:29.412172'),(18,'auth','0003_alter_user_email_max_length','2019-02-06 08:03:29.449614'),(19,'auth','0004_alter_user_username_opts','2019-02-06 08:03:29.489793'),(20,'auth','0005_alter_user_last_login_null','2019-02-06 08:03:29.529832'),(21,'auth','0006_require_contenttypes_0002','2019-02-06 08:03:29.535701'),(22,'auth','0007_alter_validators_add_error_messages','2019-02-06 08:03:29.572495'),(23,'auth','0008_alter_user_username_max_length','2019-02-06 08:03:29.606716'),(24,'instructor_task','0001_initial','2019-02-06 08:03:29.648070'),(25,'certificates','0001_initial','2019-02-06 08:03:30.038510'),(26,'certificates','0002_data__certificatehtmlviewconfiguration_data','2019-02-06 08:03:30.060258'),(27,'certificates','0003_data__default_modes','2019-02-06 08:03:30.081042'),(28,'certificates','0004_certificategenerationhistory','2019-02-06 08:03:30.138110'),(29,'certificates','0005_auto_20151208_0801','2019-02-06 08:03:30.188489'),(30,'certificates','0006_certificatetemplateasset_asset_slug','2019-02-06 08:03:30.217197'),(31,'certificates','0007_certificateinvalidation','2019-02-06 08:03:30.269518'),(32,'badges','0001_initial','2019-02-06 08:03:30.415373'),(33,'badges','0002_data__migrate_assertions','2019-02-06 08:03:30.438183'),(34,'badges','0003_schema__add_event_configuration','2019-02-06 08:03:30.731342'),(35,'block_structure','0001_config','2019-02-06 08:03:30.788599'),(36,'block_structure','0002_blockstructuremodel','2019-02-06 08:03:30.816557'),(37,'block_structure','0003_blockstructuremodel_storage','2019-02-06 08:03:30.846376'),(38,'block_structure','0004_blockstructuremodel_usagekeywithrun','2019-02-06 08:03:30.880450'),(39,'bookmarks','0001_initial','2019-02-06 08:03:31.054199'),(40,'branding','0001_initial','2019-02-06 08:03:31.166611'),(41,'course_modes','0001_initial','2019-02-06 08:03:31.243105'),(42,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2019-02-06 08:03:31.269180'),(43,'course_modes','0003_auto_20151113_1443','2019-02-06 08:03:31.298423'),(44,'course_modes','0004_auto_20151113_1457','2019-02-06 08:03:31.371839'),(45,'course_modes','0005_auto_20151217_0958','2019-02-06 08:03:31.410727'),(46,'course_modes','0006_auto_20160208_1407','2019-02-06 08:03:31.485161'),(47,'course_modes','0007_coursemode_bulk_sku','2019-02-06 08:03:31.516196'),(48,'course_groups','0001_initial','2019-02-06 08:03:32.021134'),(49,'bulk_email','0001_initial','2019-02-06 08:03:32.263160'),(50,'bulk_email','0002_data__load_course_email_template','2019-02-06 08:03:32.285972'),(51,'bulk_email','0003_config_model_feature_flag','2019-02-06 08:03:32.366594'),(52,'bulk_email','0004_add_email_targets','2019-02-06 08:03:32.873567'),(53,'bulk_email','0005_move_target_data','2019-02-06 08:03:32.900737'),(54,'bulk_email','0006_course_mode_targets','2019-02-06 08:03:33.043008'),(55,'catalog','0001_initial','2019-02-06 08:03:33.155594'),(56,'catalog','0002_catalogintegration_username','2019-02-06 08:03:33.250400'),(57,'catalog','0003_catalogintegration_page_size','2019-02-06 08:03:33.342320'),(58,'catalog','0004_auto_20170616_0618','2019-02-06 08:03:33.440389'),(59,'catalog','0005_catalogintegration_long_term_cache_ttl','2019-02-06 08:03:33.567527'),(60,'django_comment_common','0001_initial','2019-02-06 08:03:33.854539'),(61,'django_comment_common','0002_forumsconfig','2019-02-06 08:03:33.972708'),(62,'verified_track_content','0001_initial','2019-02-06 08:03:33.998702'),(63,'course_overviews','0001_initial','2019-02-06 08:03:34.057460'),(64,'course_overviews','0002_add_course_catalog_fields','2019-02-06 08:03:34.224588'),(65,'course_overviews','0003_courseoverviewgeneratedhistory','2019-02-06 08:03:34.285061'),(66,'course_overviews','0004_courseoverview_org','2019-02-06 08:03:34.361105'),(67,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2019-02-06 08:03:34.421372'),(68,'course_overviews','0006_courseoverviewimageset','2019-02-06 08:03:34.487776'),(69,'course_overviews','0007_courseoverviewimageconfig','2019-02-06 08:03:34.633259'),(70,'course_overviews','0008_remove_courseoverview_facebook_url','2019-02-06 08:03:34.646695'),(71,'course_overviews','0009_readd_facebook_url','2019-02-06 08:03:34.725856'),(72,'course_overviews','0010_auto_20160329_2317','2019-02-06 08:03:34.825796'),(73,'ccx','0001_initial','2019-02-06 08:03:35.149281'),(74,'ccx','0002_customcourseforedx_structure_json','2019-02-06 08:03:35.213941'),(75,'ccx','0003_add_master_course_staff_in_ccx','2019-02-06 08:03:35.275108'),(76,'ccx','0004_seed_forum_roles_in_ccx_courses','2019-02-06 08:03:35.320321'),(77,'ccx','0005_change_ccx_coach_to_staff','2019-02-06 08:03:35.350700'),(78,'ccx','0006_set_display_name_as_override','2019-02-06 08:03:35.391529'),(79,'ccxcon','0001_initial_ccxcon_model','2019-02-06 08:03:35.425585'),(80,'ccxcon','0002_auto_20160325_0407','2019-02-06 08:03:35.481080'),(81,'djcelery','0001_initial','2019-02-06 08:03:36.180254'),(82,'celery_utils','0001_initial','2019-02-06 08:03:36.284503'),(83,'celery_utils','0002_chordable_django_backend','2019-02-06 08:03:36.366801'),(84,'certificates','0008_schema__remove_badges','2019-02-06 08:03:36.556119'),(85,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2019-02-06 08:03:36.773167'),(86,'certificates','0010_certificatetemplate_language','2019-02-06 08:03:36.815500'),(87,'certificates','0011_certificatetemplate_alter_unique','2019-02-06 08:03:36.919819'),(88,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2019-02-06 08:03:36.957024'),(89,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2019-02-06 08:03:37.024718'),(90,'certificates','0014_change_eligible_certs_manager','2019-02-06 08:03:37.104973'),(91,'commerce','0001_data__add_ecommerce_service_user','2019-02-06 08:03:37.147354'),(92,'commerce','0002_commerceconfiguration','2019-02-06 08:03:37.232132'),(93,'commerce','0003_auto_20160329_0709','2019-02-06 08:03:37.297795'),(94,'commerce','0004_auto_20160531_0950','2019-02-06 08:03:37.417586'),(95,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2019-02-06 08:03:37.504233'),(96,'commerce','0006_auto_20170424_1734','2019-02-06 08:03:37.578243'),(97,'commerce','0007_auto_20180313_0609','2019-02-06 08:03:37.688751'),(98,'completion','0001_initial','2019-02-06 08:03:37.847750'),(99,'completion','0002_auto_20180125_1510','2019-02-06 08:03:37.917588'),(100,'enterprise','0001_initial','2019-02-06 08:03:38.090862'),(101,'enterprise','0002_enterprisecustomerbrandingconfiguration','2019-02-06 08:03:38.142785'),(102,'enterprise','0003_auto_20161104_0937','2019-02-06 08:03:38.362358'),(103,'enterprise','0004_auto_20161114_0434','2019-02-06 08:03:38.484589'),(104,'enterprise','0005_pendingenterprisecustomeruser','2019-02-06 08:03:38.565074'),(105,'enterprise','0006_auto_20161121_0241','2019-02-06 08:03:38.604288'),(106,'enterprise','0007_auto_20161109_1511','2019-02-06 08:03:38.706534'),(107,'enterprise','0008_auto_20161124_2355','2019-02-06 08:03:38.935742'),(108,'enterprise','0009_auto_20161130_1651','2019-02-06 08:03:39.582739'),(109,'enterprise','0010_auto_20161222_1212','2019-02-06 08:03:39.710110'),(110,'enterprise','0011_enterprisecustomerentitlement_historicalenterprisecustomerentitlement','2019-02-06 08:03:39.820222'),(111,'enterprise','0012_auto_20170125_1033','2019-02-06 08:03:39.921636'),(112,'enterprise','0013_auto_20170125_1157','2019-02-06 08:03:40.091299'),(113,'enterprise','0014_enrollmentnotificationemailtemplate_historicalenrollmentnotificationemailtemplate','2019-02-06 08:03:40.226864'),(114,'enterprise','0015_auto_20170130_0003','2019-02-06 08:03:40.375822'),(115,'enterprise','0016_auto_20170405_0647','2019-02-06 08:03:41.108702'),(116,'enterprise','0017_auto_20170508_1341','2019-02-06 08:03:41.558782'),(117,'enterprise','0018_auto_20170511_1357','2019-02-06 08:03:41.671248'),(118,'enterprise','0019_auto_20170606_1853','2019-02-06 08:03:41.795407'),(119,'enterprise','0020_auto_20170624_2316','2019-02-06 08:03:42.114378'),(120,'enterprise','0021_auto_20170711_0712','2019-02-06 08:03:42.443741'),(121,'enterprise','0022_auto_20170720_1543','2019-02-06 08:03:42.555544'),(122,'enterprise','0023_audit_data_reporting_flag','2019-02-06 08:03:42.667708'),(123,'enterprise','0024_enterprisecustomercatalog_historicalenterprisecustomercatalog','2019-02-06 08:03:42.823862'),(124,'enterprise','0025_auto_20170828_1412','2019-02-06 08:03:43.148897'),(125,'enterprise','0026_make_require_account_level_consent_nullable','2019-02-06 08:03:43.564302'),(126,'enterprise','0027_remove_account_level_consent','2019-02-06 08:03:44.095360'),(127,'enterprise','0028_link_enterprise_to_enrollment_template','2019-02-06 08:03:44.318418'),(128,'enterprise','0029_auto_20170925_1909','2019-02-06 08:03:44.398129'),(129,'enterprise','0030_auto_20171005_1600','2019-02-06 08:03:44.553947'),(130,'enterprise','0031_auto_20171012_1249','2019-02-06 08:03:44.725906'),(131,'enterprise','0032_reporting_model','2019-02-06 08:03:44.840167'),(132,'enterprise','0033_add_history_change_reason_field','2019-02-06 08:03:45.245971'),(133,'enterprise','0034_auto_20171023_0727','2019-02-06 08:03:45.385659'),(134,'enterprise','0035_auto_20171212_1129','2019-02-06 08:03:45.513332'),(135,'enterprise','0036_sftp_reporting_support','2019-02-06 08:03:46.086601'),(136,'enterprise','0037_auto_20180110_0450','2019-02-06 08:03:46.208354'),(137,'enterprise','0038_auto_20180122_1427','2019-02-06 08:03:46.303546'),(138,'enterprise','0039_auto_20180129_1034','2019-02-06 08:03:46.415988'),(139,'enterprise','0040_auto_20180129_1428','2019-02-06 08:03:46.564661'),(140,'enterprise','0041_auto_20180212_1507','2019-02-06 08:03:46.626003'),(141,'consent','0001_initial','2019-02-06 08:03:46.846549'),(142,'consent','0002_migrate_to_new_data_sharing_consent','2019-02-06 08:03:46.875083'),(143,'consent','0003_historicaldatasharingconsent_history_change_reason','2019-02-06 08:03:46.965702'),(144,'consent','0004_datasharingconsenttextoverrides','2019-02-06 08:03:47.065885'),(145,'sites','0002_alter_domain_unique','2019-02-06 08:03:47.113519'),(146,'course_overviews','0011_courseoverview_marketing_url','2019-02-06 08:03:47.173117'),(147,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2019-02-06 08:03:47.251335'),(148,'course_overviews','0013_courseoverview_language','2019-02-06 08:03:47.323251'),(149,'course_overviews','0014_courseoverview_certificate_available_date','2019-02-06 08:03:47.375112'),(150,'content_type_gating','0001_initial','2019-02-06 08:03:47.504223'),(151,'content_type_gating','0002_auto_20181119_0959','2019-02-06 08:03:47.696167'),(152,'content_type_gating','0003_auto_20181128_1407','2019-02-06 08:03:47.802689'),(153,'content_type_gating','0004_auto_20181128_1521','2019-02-06 08:03:47.899743'),(154,'contentserver','0001_initial','2019-02-06 08:03:48.012402'),(155,'contentserver','0002_cdnuseragentsconfig','2019-02-06 08:03:48.115897'),(156,'cors_csrf','0001_initial','2019-02-06 08:03:48.228961'),(157,'course_action_state','0001_initial','2019-02-06 08:03:48.432637'),(158,'course_duration_limits','0001_initial','2019-02-06 08:03:48.561335'),(159,'course_duration_limits','0002_auto_20181119_0959','2019-02-06 08:03:49.033726'),(160,'course_duration_limits','0003_auto_20181128_1407','2019-02-06 08:03:49.154788'),(161,'course_duration_limits','0004_auto_20181128_1521','2019-02-06 08:03:49.286782'),(162,'course_goals','0001_initial','2019-02-06 08:03:49.504320'),(163,'course_goals','0002_auto_20171010_1129','2019-02-06 08:03:49.596345'),(164,'course_groups','0002_change_inline_default_cohort_value','2019-02-06 08:03:49.642049'),(165,'course_groups','0003_auto_20170609_1455','2019-02-06 08:03:50.080016'),(166,'course_modes','0008_course_key_field_to_foreign_key','2019-02-06 08:03:50.526973'),(167,'course_modes','0009_suggested_prices_to_charfield','2019-02-06 08:03:50.584282'),(168,'course_modes','0010_archived_suggested_prices_to_charfield','2019-02-06 08:03:50.629980'),(169,'course_modes','0011_change_regex_for_comma_separated_ints','2019-02-06 08:03:50.727914'),(170,'courseware','0001_initial','2019-02-06 08:03:53.237177'),(171,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2019-02-06 08:03:53.619502'),(172,'courseware','0003_auto_20170825_0935','2019-02-06 08:03:53.747454'),(173,'courseware','0004_auto_20171010_1639','2019-02-06 08:03:53.895768'),(174,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2019-02-06 08:03:54.230018'),(175,'courseware','0006_remove_module_id_index','2019-02-06 08:03:54.435353'),(176,'courseware','0007_remove_done_index','2019-02-06 08:03:55.012607'),(177,'coursewarehistoryextended','0001_initial','2019-02-06 08:03:55.303411'),(178,'coursewarehistoryextended','0002_force_studentmodule_index','2019-02-06 08:03:55.370079'),(179,'crawlers','0001_initial','2019-02-06 08:03:55.442696'),(180,'crawlers','0002_auto_20170419_0018','2019-02-06 08:03:55.510303'),(181,'credentials','0001_initial','2019-02-06 08:03:55.578783'),(182,'credentials','0002_auto_20160325_0631','2019-02-06 08:03:55.640533'),(183,'credentials','0003_auto_20170525_1109','2019-02-06 08:03:55.760811'),(184,'credentials','0004_notifycredentialsconfig','2019-02-06 08:03:55.827343'),(185,'credit','0001_initial','2019-02-06 08:03:56.379666'),(186,'credit','0002_creditconfig','2019-02-06 08:03:56.456288'),(187,'credit','0003_auto_20160511_2227','2019-02-06 08:03:56.510076'),(188,'credit','0004_delete_historical_credit_records','2019-02-06 08:03:56.908755'),(189,'dark_lang','0001_initial','2019-02-06 08:03:56.974435'),(190,'dark_lang','0002_data__enable_on_install','2019-02-06 08:03:57.008178'),(191,'dark_lang','0003_auto_20180425_0359','2019-02-06 08:03:57.123998'),(192,'database_fixups','0001_initial','2019-02-06 08:03:57.156768'),(193,'degreed','0001_initial','2019-02-06 08:03:58.035952'),(194,'degreed','0002_auto_20180104_0103','2019-02-06 08:03:58.408761'),(195,'degreed','0003_auto_20180109_0712','2019-02-06 08:03:58.616044'),(196,'degreed','0004_auto_20180306_1251','2019-02-06 08:03:58.814623'),(197,'degreed','0005_auto_20180807_1302','2019-02-06 08:04:00.635482'),(198,'degreed','0006_upgrade_django_simple_history','2019-02-06 08:04:00.815237'),(199,'django_comment_common','0003_enable_forums','2019-02-06 08:04:00.851878'),(200,'django_comment_common','0004_auto_20161117_1209','2019-02-06 08:04:01.011618'),(201,'django_comment_common','0005_coursediscussionsettings','2019-02-06 08:04:01.048387'),(202,'django_comment_common','0006_coursediscussionsettings_discussions_id_map','2019-02-06 08:04:01.092669'),(203,'django_comment_common','0007_discussionsidmapping','2019-02-06 08:04:01.135336'),(204,'django_comment_common','0008_role_user_index','2019-02-06 08:04:01.166345'),(205,'django_notify','0001_initial','2019-02-06 08:04:01.899046'),(206,'django_openid_auth','0001_initial','2019-02-06 08:04:02.148673'),(207,'oauth2','0001_initial','2019-02-06 08:04:03.447522'),(208,'edx_oauth2_provider','0001_initial','2019-02-06 08:04:03.637123'),(209,'edx_proctoring','0001_initial','2019-02-06 08:04:06.249264'),(210,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2019-02-06 08:04:06.453204'),(211,'edx_proctoring','0003_auto_20160101_0525','2019-02-06 08:04:06.849450'),(212,'edx_proctoring','0004_auto_20160201_0523','2019-02-06 08:04:07.035676'),(213,'edx_proctoring','0005_proctoredexam_hide_after_due','2019-02-06 08:04:07.119540'),(214,'edx_proctoring','0006_allowed_time_limit_mins','2019-02-06 08:04:07.870116'),(215,'edx_proctoring','0007_proctoredexam_backend','2019-02-06 08:04:07.931188'),(216,'edx_proctoring','0008_auto_20181116_1551','2019-02-06 08:04:08.424205'),(217,'edx_proctoring','0009_proctoredexamreviewpolicy_remove_rules','2019-02-06 08:04:08.762512'),(218,'edxval','0001_initial','2019-02-06 08:04:09.122448'),(219,'edxval','0002_data__default_profiles','2019-02-06 08:04:09.157306'),(220,'edxval','0003_coursevideo_is_hidden','2019-02-06 08:04:09.208230'),(221,'edxval','0004_data__add_hls_profile','2019-02-06 08:04:09.249124'),(222,'edxval','0005_videoimage','2019-02-06 08:04:09.314101'),(223,'edxval','0006_auto_20171009_0725','2019-02-06 08:04:09.422431'),(224,'edxval','0007_transcript_credentials_state','2019-02-06 08:04:09.502957'),(225,'edxval','0008_remove_subtitles','2019-02-06 08:04:09.597483'),(226,'edxval','0009_auto_20171127_0406','2019-02-06 08:04:09.650707'),(227,'edxval','0010_add_video_as_foreign_key','2019-02-06 08:04:09.853179'),(228,'edxval','0011_data__add_audio_mp3_profile','2019-02-06 08:04:09.888952'),(229,'email_marketing','0001_initial','2019-02-06 08:04:10.490362'),(230,'email_marketing','0002_auto_20160623_1656','2019-02-06 08:04:12.322113'),(231,'email_marketing','0003_auto_20160715_1145','2019-02-06 08:04:13.625016'),(232,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2019-02-06 08:04:13.804721'),(233,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2019-02-06 08:04:13.987226'),(234,'email_marketing','0006_auto_20170711_0615','2019-02-06 08:04:14.175392'),(235,'email_marketing','0007_auto_20170809_0653','2019-02-06 08:04:14.743333'),(236,'email_marketing','0008_auto_20170809_0539','2019-02-06 08:04:14.781400'),(237,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2019-02-06 08:04:15.000262'),(238,'email_marketing','0010_auto_20180425_0800','2019-02-06 08:04:15.577846'),(239,'embargo','0001_initial','2019-02-06 08:04:16.853715'),(240,'embargo','0002_data__add_countries','2019-02-06 08:04:16.895352'),(241,'enterprise','0042_replace_sensitive_sso_username','2019-02-06 08:04:17.169747'),(242,'enterprise','0043_auto_20180507_0138','2019-02-06 08:04:17.765765'),(243,'enterprise','0044_reporting_config_multiple_types','2019-02-06 08:04:18.048084'),(244,'enterprise','0045_report_type_json','2019-02-06 08:04:18.121655'),(245,'enterprise','0046_remove_unique_constraints','2019-02-06 08:04:18.194060'),(246,'enterprise','0047_auto_20180517_0457','2019-02-06 08:04:18.519446'),(247,'enterprise','0048_enterprisecustomeruser_active','2019-02-06 08:04:18.962011'),(248,'enterprise','0049_auto_20180531_0321','2019-02-06 08:04:20.082033'),(249,'enterprise','0050_progress_v2','2019-02-06 08:04:20.186103'),(250,'enterprise','0051_add_enterprise_slug','2019-02-06 08:04:20.652158'),(251,'enterprise','0052_create_unique_slugs','2019-02-06 08:04:21.259457'),(252,'enterprise','0053_pendingenrollment_cohort_name','2019-02-06 08:04:21.457833'),(253,'enterprise','0053_auto_20180911_0811','2019-02-06 08:04:22.130573'),(254,'enterprise','0054_merge_20180914_1511','2019-02-06 08:04:22.143011'),(255,'enterprise','0055_auto_20181015_1112','2019-02-06 08:04:22.603605'),(256,'enterprise','0056_enterprisecustomerreportingconfiguration_pgp_encryption_key','2019-02-06 08:04:22.718871'),(257,'enterprise','0057_enterprisecustomerreportingconfiguration_enterprise_customer_catalogs','2019-02-06 08:04:23.004578'),(258,'enterprise','0058_auto_20181212_0145','2019-02-06 08:04:23.860134'),(259,'enterprise','0059_add_code_management_portal_config','2019-02-06 08:04:24.184355'),(260,'enterprise','0060_upgrade_django_simple_history','2019-02-06 08:04:24.698860'),(261,'student','0001_initial','2019-02-06 08:04:31.285410'),(262,'student','0002_auto_20151208_1034','2019-02-06 08:04:31.449034'),(263,'student','0003_auto_20160516_0938','2019-02-06 08:04:31.626628'),(264,'student','0004_auto_20160531_1422','2019-02-06 08:04:31.724604'),(265,'student','0005_auto_20160531_1653','2019-02-06 08:04:32.170241'),(266,'student','0006_logoutviewconfiguration','2019-02-06 08:04:32.266892'),(267,'student','0007_registrationcookieconfiguration','2019-02-06 08:04:32.366689'),(268,'student','0008_auto_20161117_1209','2019-02-06 08:04:32.463972'),(269,'student','0009_auto_20170111_0422','2019-02-06 08:04:32.558706'),(270,'student','0010_auto_20170207_0458','2019-02-06 08:04:32.564759'),(271,'student','0011_course_key_field_to_foreign_key','2019-02-06 08:04:34.027590'),(272,'student','0012_sociallink','2019-02-06 08:04:34.353842'),(273,'student','0013_delete_historical_enrollment_records','2019-02-06 08:04:35.810292'),(274,'entitlements','0001_initial','2019-02-06 08:04:36.165929'),(275,'entitlements','0002_auto_20171102_0719','2019-02-06 08:04:38.257565'),(276,'entitlements','0003_auto_20171205_1431','2019-02-06 08:04:40.470342'),(277,'entitlements','0004_auto_20171206_1729','2019-02-06 08:04:40.982538'),(278,'entitlements','0005_courseentitlementsupportdetail','2019-02-06 08:04:41.539847'),(279,'entitlements','0006_courseentitlementsupportdetail_action','2019-02-06 08:04:41.979223'),(280,'entitlements','0007_change_expiration_period_default','2019-02-06 08:04:42.159096'),(281,'entitlements','0008_auto_20180328_1107','2019-02-06 08:04:42.683695'),(282,'entitlements','0009_courseentitlement_refund_locked','2019-02-06 08:04:43.025841'),(283,'entitlements','0010_backfill_refund_lock','2019-02-06 08:04:43.067438'),(284,'experiments','0001_initial','2019-02-06 08:04:44.694218'),(285,'experiments','0002_auto_20170627_1402','2019-02-06 08:04:44.793494'),(286,'experiments','0003_auto_20170713_1148','2019-02-06 08:04:44.853420'),(287,'external_auth','0001_initial','2019-02-06 08:04:45.445694'),(288,'grades','0001_initial','2019-02-06 08:04:45.632121'),(289,'grades','0002_rename_last_edited_field','2019-02-06 08:04:45.699684'),(290,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2019-02-06 08:04:46.457202'),(291,'grades','0004_visibleblocks_course_id','2019-02-06 08:04:46.531908'),(292,'grades','0005_multiple_course_flags','2019-02-06 08:04:46.849592'),(293,'grades','0006_persistent_course_grades','2019-02-06 08:04:46.952796'),(294,'grades','0007_add_passed_timestamp_column','2019-02-06 08:04:47.066573'),(295,'grades','0008_persistentsubsectiongrade_first_attempted','2019-02-06 08:04:47.138816'),(296,'grades','0009_auto_20170111_1507','2019-02-06 08:04:47.259581'),(297,'grades','0010_auto_20170112_1156','2019-02-06 08:04:47.344906'),(298,'grades','0011_null_edited_time','2019-02-06 08:04:47.527358'),(299,'grades','0012_computegradessetting','2019-02-06 08:04:48.367572'),(300,'grades','0013_persistentsubsectiongradeoverride','2019-02-06 08:04:48.436380'),(301,'grades','0014_persistentsubsectiongradeoverridehistory','2019-02-06 08:04:48.767621'),(302,'instructor_task','0002_gradereportsetting','2019-02-06 08:04:49.116174'),(303,'waffle','0001_initial','2019-02-06 08:04:49.522307'),(304,'sap_success_factors','0001_initial','2019-02-06 08:04:50.784688'),(305,'sap_success_factors','0002_auto_20170224_1545','2019-02-06 08:04:52.503372'),(306,'sap_success_factors','0003_auto_20170317_1402','2019-02-06 08:04:53.057896'),(307,'sap_success_factors','0004_catalogtransmissionaudit_audit_summary','2019-02-06 08:04:53.112654'),(308,'sap_success_factors','0005_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 08:04:53.414309'),(309,'sap_success_factors','0006_sapsuccessfactors_use_enterprise_enrollment_page_waffle_flag','2019-02-06 08:04:53.467401'),(310,'sap_success_factors','0007_remove_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 08:04:53.753419'),(311,'sap_success_factors','0008_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 08:04:54.072310'),(312,'sap_success_factors','0009_sapsuccessfactors_remove_enterprise_enrollment_page_waffle_flag','2019-02-06 08:04:54.115078'),(313,'sap_success_factors','0010_move_audit_tables_to_base_integrated_channel','2019-02-06 08:04:54.280162'),(314,'integrated_channel','0001_initial','2019-02-06 08:04:54.374204'),(315,'integrated_channel','0002_delete_enterpriseintegratedchannel','2019-02-06 08:04:54.413351'),(316,'integrated_channel','0003_catalogtransmissionaudit_learnerdatatransmissionaudit','2019-02-06 08:04:54.514947'),(317,'integrated_channel','0004_catalogtransmissionaudit_channel','2019-02-06 08:04:54.566483'),(318,'integrated_channel','0005_auto_20180306_1251','2019-02-06 08:04:55.508336'),(319,'integrated_channel','0006_delete_catalogtransmissionaudit','2019-02-06 08:04:55.564564'),(320,'lms_xblock','0001_initial','2019-02-06 08:04:55.920260'),(321,'microsite_configuration','0001_initial','2019-02-06 08:04:59.149839'),(322,'microsite_configuration','0002_auto_20160202_0228','2019-02-06 08:04:59.263415'),(323,'microsite_configuration','0003_delete_historical_records','2019-02-06 08:05:00.613558'),(324,'milestones','0001_initial','2019-02-06 08:05:01.624456'),(325,'milestones','0002_data__seed_relationship_types','2019-02-06 08:05:01.663935'),(326,'milestones','0003_coursecontentmilestone_requirements','2019-02-06 08:05:01.731497'),(327,'milestones','0004_auto_20151221_1445','2019-02-06 08:05:01.953395'),(328,'mobile_api','0001_initial','2019-02-06 08:05:02.276280'),(329,'mobile_api','0002_auto_20160406_0904','2019-02-06 08:05:02.375950'),(330,'mobile_api','0003_ignore_mobile_available_flag','2019-02-06 08:05:02.955623'),(331,'notes','0001_initial','2019-02-06 08:05:03.284134'),(332,'oauth2','0002_auto_20160404_0813','2019-02-06 08:05:04.320559'),(333,'oauth2','0003_client_logout_uri','2019-02-06 08:05:05.028463'),(334,'oauth2','0004_add_index_on_grant_expires','2019-02-06 08:05:05.320810'),(335,'oauth2','0005_grant_nonce','2019-02-06 08:05:05.628866'),(336,'organizations','0001_initial','2019-02-06 08:05:05.786592'),(337,'organizations','0002_auto_20170117_1434','2019-02-06 08:05:05.850615'),(338,'organizations','0003_auto_20170221_1138','2019-02-06 08:05:05.970702'),(339,'organizations','0004_auto_20170413_2315','2019-02-06 08:05:06.085590'),(340,'organizations','0005_auto_20171116_0640','2019-02-06 08:05:06.148448'),(341,'organizations','0006_auto_20171207_0259','2019-02-06 08:05:06.215454'),(342,'oauth2_provider','0001_initial','2019-02-06 08:05:07.961621'),(343,'oauth_dispatch','0001_initial','2019-02-06 08:05:08.350586'),(344,'oauth_dispatch','0002_scopedapplication_scopedapplicationorganization','2019-02-06 08:05:09.132604'),(345,'oauth_dispatch','0003_application_data','2019-02-06 08:05:09.196710'),(346,'oauth_dispatch','0004_auto_20180626_1349','2019-02-06 08:05:11.499019'),(347,'oauth_dispatch','0005_applicationaccess_type','2019-02-06 08:05:11.606808'),(348,'oauth_dispatch','0006_drop_application_id_constraints','2019-02-06 08:05:11.875498'),(349,'oauth2_provider','0002_08_updates','2019-02-06 08:05:12.127180'),(350,'oauth2_provider','0003_auto_20160316_1503','2019-02-06 08:05:12.219934'),(351,'oauth2_provider','0004_auto_20160525_1623','2019-02-06 08:05:12.448186'),(352,'oauth2_provider','0005_auto_20170514_1141','2019-02-06 08:05:13.676168'),(353,'oauth2_provider','0006_auto_20171214_2232','2019-02-06 08:05:14.539094'),(354,'oauth_dispatch','0007_restore_application_id_constraints','2019-02-06 08:05:14.834346'),(355,'oauth_provider','0001_initial','2019-02-06 08:05:15.171734'),(356,'problem_builder','0001_initial','2019-02-06 08:05:15.299615'),(357,'problem_builder','0002_auto_20160121_1525','2019-02-06 08:05:15.503283'),(358,'problem_builder','0003_auto_20161124_0755','2019-02-06 08:05:15.621050'),(359,'problem_builder','0004_copy_course_ids','2019-02-06 08:05:15.672698'),(360,'problem_builder','0005_auto_20170112_1021','2019-02-06 08:05:15.822489'),(361,'problem_builder','0006_remove_deprecated_course_id','2019-02-06 08:05:15.937076'),(362,'programs','0001_initial','2019-02-06 08:05:16.056792'),(363,'programs','0002_programsapiconfig_cache_ttl','2019-02-06 08:05:16.160203'),(364,'programs','0003_auto_20151120_1613','2019-02-06 08:05:16.532675'),(365,'programs','0004_programsapiconfig_enable_certification','2019-02-06 08:05:17.329411'),(366,'programs','0005_programsapiconfig_max_retries','2019-02-06 08:05:17.560011'),(367,'programs','0006_programsapiconfig_xseries_ad_enabled','2019-02-06 08:05:17.710363'),(368,'programs','0007_programsapiconfig_program_listing_enabled','2019-02-06 08:05:17.830224'),(369,'programs','0008_programsapiconfig_program_details_enabled','2019-02-06 08:05:17.950796'),(370,'programs','0009_programsapiconfig_marketing_path','2019-02-06 08:05:18.079013'),(371,'programs','0010_auto_20170204_2332','2019-02-06 08:05:18.382249'),(372,'programs','0011_auto_20170301_1844','2019-02-06 08:05:19.698119'),(373,'programs','0012_auto_20170419_0018','2019-02-06 08:05:19.800404'),(374,'redirects','0001_initial','2019-02-06 08:05:20.155019'),(375,'rss_proxy','0001_initial','2019-02-06 08:05:20.204027'),(376,'sap_success_factors','0011_auto_20180104_0103','2019-02-06 08:05:24.276543'),(377,'sap_success_factors','0012_auto_20180109_0712','2019-02-06 08:05:24.679152'),(378,'sap_success_factors','0013_auto_20180306_1251','2019-02-06 08:05:25.083064'),(379,'sap_success_factors','0014_drop_historical_table','2019-02-06 08:05:25.129347'),(380,'sap_success_factors','0015_auto_20180510_1259','2019-02-06 08:05:25.860155'),(381,'sap_success_factors','0016_sapsuccessfactorsenterprisecustomerconfiguration_additional_locales','2019-02-06 08:05:25.960191'),(382,'sap_success_factors','0017_sapsuccessfactorsglobalconfiguration_search_student_api_path','2019-02-06 08:05:26.285693'),(383,'schedules','0001_initial','2019-02-06 08:05:26.690791'),(384,'schedules','0002_auto_20170816_1532','2019-02-06 08:05:27.302276'),(385,'schedules','0003_scheduleconfig','2019-02-06 08:05:27.646134'),(386,'schedules','0004_auto_20170922_1428','2019-02-06 08:05:28.252876'),(387,'schedules','0005_auto_20171010_1722','2019-02-06 08:05:28.881956'),(388,'schedules','0006_scheduleexperience','2019-02-06 08:05:29.251797'),(389,'schedules','0007_scheduleconfig_hold_back_ratio','2019-02-06 08:05:29.617048'),(390,'self_paced','0001_initial','2019-02-06 08:05:30.027241'),(391,'sessions','0001_initial','2019-02-06 08:05:30.078048'),(392,'shoppingcart','0001_initial','2019-02-06 08:05:38.998266'),(393,'shoppingcart','0002_auto_20151208_1034','2019-02-06 08:05:39.154428'),(394,'shoppingcart','0003_auto_20151217_0958','2019-02-06 08:05:39.312762'),(395,'shoppingcart','0004_change_meta_options','2019-02-06 08:05:39.468307'),(396,'site_configuration','0001_initial','2019-02-06 08:05:40.221457'),(397,'site_configuration','0002_auto_20160720_0231','2019-02-06 08:05:40.436234'),(398,'default','0001_initial','2019-02-06 08:05:41.857778'),(399,'social_auth','0001_initial','2019-02-06 08:05:41.863663'),(400,'default','0002_add_related_name','2019-02-06 08:05:42.234168'),(401,'social_auth','0002_add_related_name','2019-02-06 08:05:42.241171'),(402,'default','0003_alter_email_max_length','2019-02-06 08:05:42.308536'),(403,'social_auth','0003_alter_email_max_length','2019-02-06 08:05:42.316793'),(404,'default','0004_auto_20160423_0400','2019-02-06 08:05:42.679083'),(405,'social_auth','0004_auto_20160423_0400','2019-02-06 08:05:42.685800'),(406,'social_auth','0005_auto_20160727_2333','2019-02-06 08:05:42.757758'),(407,'social_django','0006_partial','2019-02-06 08:05:42.816147'),(408,'social_django','0007_code_timestamp','2019-02-06 08:05:42.883285'),(409,'social_django','0008_partial_timestamp','2019-02-06 08:05:42.957758'),(410,'splash','0001_initial','2019-02-06 08:05:43.433414'),(411,'static_replace','0001_initial','2019-02-06 08:05:44.140144'),(412,'static_replace','0002_assetexcludedextensionsconfig','2019-02-06 08:05:46.566804'),(413,'status','0001_initial','2019-02-06 08:05:47.436513'),(414,'status','0002_update_help_text','2019-02-06 08:05:47.800113'),(415,'student','0014_courseenrollmentallowed_user','2019-02-06 08:05:48.264692'),(416,'student','0015_manualenrollmentaudit_add_role','2019-02-06 08:05:48.712619'),(417,'student','0016_coursenrollment_course_on_delete_do_nothing','2019-02-06 08:05:49.240041'),(418,'student','0017_accountrecovery','2019-02-06 08:05:49.748236'),(419,'student','0018_remove_password_history','2019-02-06 08:05:50.694342'),(420,'student','0019_auto_20181221_0540','2019-02-06 08:05:51.482317'),(421,'submissions','0001_initial','2019-02-06 08:05:51.980676'),(422,'submissions','0002_auto_20151119_0913','2019-02-06 08:05:52.129788'),(423,'submissions','0003_submission_status','2019-02-06 08:05:52.207556'),(424,'submissions','0004_remove_django_extensions','2019-02-06 08:05:52.285295'),(425,'survey','0001_initial','2019-02-06 08:05:53.028225'),(426,'teams','0001_initial','2019-02-06 08:05:56.392431'),(427,'theming','0001_initial','2019-02-06 08:05:57.128347'),(428,'third_party_auth','0001_initial','2019-02-06 08:06:00.383669'),(429,'third_party_auth','0002_schema__provider_icon_image','2019-02-06 08:06:04.313456'),(430,'third_party_auth','0003_samlproviderconfig_debug_mode','2019-02-06 08:06:04.721469'),(431,'third_party_auth','0004_add_visible_field','2019-02-06 08:06:08.188893'),(432,'third_party_auth','0005_add_site_field','2019-02-06 08:06:11.231121'),(433,'third_party_auth','0006_samlproviderconfig_automatic_refresh_enabled','2019-02-06 08:06:11.638402'),(434,'third_party_auth','0007_auto_20170406_0912','2019-02-06 08:06:12.463541'),(435,'third_party_auth','0008_auto_20170413_1455','2019-02-06 08:06:13.699789'),(436,'third_party_auth','0009_auto_20170415_1144','2019-02-06 08:06:15.877426'),(437,'third_party_auth','0010_add_skip_hinted_login_dialog_field','2019-02-06 08:06:17.252327'),(438,'third_party_auth','0011_auto_20170616_0112','2019-02-06 08:06:17.697662'),(439,'third_party_auth','0012_auto_20170626_1135','2019-02-06 08:06:19.014914'),(440,'third_party_auth','0013_sync_learner_profile_data','2019-02-06 08:06:21.184194'),(441,'third_party_auth','0014_auto_20171222_1233','2019-02-06 08:06:22.500576'),(442,'third_party_auth','0015_samlproviderconfig_archived','2019-02-06 08:06:22.910782'),(443,'third_party_auth','0016_auto_20180130_0938','2019-02-06 08:06:23.768574'),(444,'third_party_auth','0017_remove_icon_class_image_secondary_fields','2019-02-06 08:06:25.677996'),(445,'third_party_auth','0018_auto_20180327_1631','2019-02-06 08:06:26.945645'),(446,'third_party_auth','0019_consolidate_slug','2019-02-06 08:06:28.225165'),(447,'third_party_auth','0020_cleanup_slug_fields','2019-02-06 08:06:29.071340'),(448,'third_party_auth','0021_sso_id_verification','2019-02-06 08:06:30.920266'),(449,'third_party_auth','0022_auto_20181012_0307','2019-02-06 08:06:33.001900'),(450,'thumbnail','0001_initial','2019-02-06 08:06:33.058625'),(451,'track','0001_initial','2019-02-06 08:06:33.135878'),(452,'user_api','0001_initial','2019-02-06 08:06:36.568433'),(453,'user_api','0002_retirementstate_userretirementstatus','2019-02-06 08:06:37.067536'),(454,'user_api','0003_userretirementrequest','2019-02-06 08:06:37.538805'),(455,'user_api','0004_userretirementpartnerreportingstatus','2019-02-06 08:06:38.846620'),(456,'user_authn','0001_data__add_login_service','2019-02-06 08:06:38.924862'),(457,'util','0001_initial','2019-02-06 08:06:39.401783'),(458,'util','0002_data__default_rate_limit_config','2019-02-06 08:06:39.459887'),(459,'verified_track_content','0002_verifiedtrackcohortedcourse_verified_cohort_name','2019-02-06 08:06:39.538104'),(460,'verified_track_content','0003_migrateverifiedtrackcohortssetting','2019-02-06 08:06:40.048232'),(461,'verify_student','0001_initial','2019-02-06 08:06:45.357816'),(462,'verify_student','0002_auto_20151124_1024','2019-02-06 08:06:45.516943'),(463,'verify_student','0003_auto_20151113_1443','2019-02-06 08:06:45.673513'),(464,'verify_student','0004_delete_historical_records','2019-02-06 08:06:45.835049'),(465,'verify_student','0005_remove_deprecated_models','2019-02-06 08:06:49.679210'),(466,'verify_student','0006_ssoverification','2019-02-06 08:06:49.790644'),(467,'verify_student','0007_idverificationaggregate','2019-02-06 08:06:49.891841'),(468,'verify_student','0008_populate_idverificationaggregate','2019-02-06 08:06:49.947020'),(469,'verify_student','0009_remove_id_verification_aggregate','2019-02-06 08:06:50.183257'),(470,'verify_student','0010_manualverification','2019-02-06 08:06:50.284386'),(471,'verify_student','0011_add_fields_to_sspv','2019-02-06 08:06:50.459982'),(472,'video_config','0001_initial','2019-02-06 08:06:50.654393'),(473,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2019-02-06 08:06:50.846809'),(474,'video_config','0003_transcriptmigrationsetting','2019-02-06 08:06:50.952242'),(475,'video_config','0004_transcriptmigrationsetting_command_run','2019-02-06 08:06:51.053615'),(476,'video_config','0005_auto_20180719_0752','2019-02-06 08:06:51.770192'),(477,'video_config','0006_videothumbnailetting_updatedcoursevideos','2019-02-06 08:06:51.998431'),(478,'video_config','0007_videothumbnailsetting_offset','2019-02-06 08:06:52.104225'),(479,'video_pipeline','0001_initial','2019-02-06 08:06:52.217246'),(480,'video_pipeline','0002_auto_20171114_0704','2019-02-06 08:06:52.423437'),(481,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2019-02-06 08:06:52.652384'),(482,'waffle','0002_auto_20161201_0958','2019-02-06 08:06:52.731546'),(483,'waffle_utils','0001_initial','2019-02-06 08:06:52.859204'),(484,'wiki','0001_initial','2019-02-06 08:07:04.002394'),(485,'wiki','0002_remove_article_subscription','2019-02-06 08:07:04.852782'),(486,'wiki','0003_ip_address_conv','2019-02-06 08:07:06.546138'),(487,'wiki','0004_increase_slug_size','2019-02-06 08:07:06.749915'),(488,'wiki','0005_remove_attachments_and_images','2019-02-06 08:07:10.711449'),(489,'workflow','0001_initial','2019-02-06 08:07:10.929774'),(490,'workflow','0002_remove_django_extensions','2019-02-06 08:07:11.016177'),(491,'xapi','0001_initial','2019-02-06 08:07:11.530173'),(492,'xapi','0002_auto_20180726_0142','2019-02-06 08:07:11.853838'),(493,'xblock_django','0001_initial','2019-02-06 08:07:12.421573'),(494,'xblock_django','0002_auto_20160204_0809','2019-02-06 08:07:12.884088'),(495,'xblock_django','0003_add_new_config_models','2019-02-06 08:07:15.322827'),(496,'xblock_django','0004_delete_xblock_disable_config','2019-02-06 08:07:15.939861'),(497,'social_django','0002_add_related_name','2019-02-06 08:07:15.955501'),(498,'social_django','0003_alter_email_max_length','2019-02-06 08:07:15.960905'),(499,'social_django','0004_auto_20160423_0400','2019-02-06 08:07:15.967703'),(500,'social_django','0001_initial','2019-02-06 08:07:15.972077'),(501,'social_django','0005_auto_20160727_2333','2019-02-06 08:07:15.978019'),(502,'contentstore','0001_initial','2019-02-06 08:07:47.027361'),(503,'contentstore','0002_add_assets_page_flag','2019-02-06 08:07:48.064450'),(504,'contentstore','0003_remove_assets_page_flag','2019-02-06 08:07:48.989553'),(505,'course_creators','0001_initial','2019-02-06 08:07:49.658930'),(506,'tagging','0001_initial','2019-02-06 08:07:49.791763'),(507,'tagging','0002_auto_20170116_1541','2019-02-06 08:07:49.890533'),(508,'user_tasks','0001_initial','2019-02-06 08:07:50.803460'),(509,'user_tasks','0002_artifact_file_storage','2019-02-06 08:07:50.865286'),(510,'xblock_config','0001_initial','2019-02-06 08:07:51.079346'),(511,'xblock_config','0002_courseeditltifieldsenabledflag','2019-02-06 08:07:51.540299'),(512,'lti_provider','0001_initial','2019-02-20 13:02:12.609875'),(513,'lti_provider','0002_auto_20160325_0407','2019-02-20 13:02:12.673092'),(514,'lti_provider','0003_auto_20161118_1040','2019-02-20 13:02:12.735420'),(515,'content_type_gating','0005_auto_20190306_1547','2019-03-06 16:01:10.563542'),(516,'course_duration_limits','0005_auto_20190306_1546','2019-03-06 16:01:11.211966'),(517,'enterprise','0061_systemwideenterpriserole_systemwideenterpriseuserroleassignment','2019-03-08 15:47:46.856657'),(518,'enterprise','0062_add_system_wide_enterprise_roles','2019-03-08 15:47:46.906778'),(519,'content_type_gating','0006_auto_20190308_1447','2019-03-11 16:27:52.135257'),(520,'course_duration_limits','0006_auto_20190308_1447','2019-03-11 16:27:52.779284'),(521,'content_type_gating','0007_auto_20190311_1919','2019-03-12 16:11:54.043782'),(522,'course_duration_limits','0007_auto_20190311_1919','2019-03-12 16:11:56.790492'),(523,'announcements','0001_initial','2019-03-18 20:55:30.988286'),(524,'content_type_gating','0008_auto_20190313_1634','2019-03-18 20:55:31.415131'),(525,'course_duration_limits','0008_auto_20190313_1634','2019-03-18 20:55:32.064734'),(526,'enterprise','0063_systemwideenterpriserole_description','2019-03-21 18:42:16.699719'),(527,'enterprise','0064_enterprisefeaturerole_enterprisefeatureuserroleassignment','2019-03-28 19:30:12.392842'),(528,'enterprise','0065_add_enterprise_feature_roles','2019-03-28 19:30:12.443188'),(529,'enterprise','0066_add_system_wide_enterprise_operator_role','2019-03-28 19:30:12.488801'),(530,'student','0020_auto_20190227_2019','2019-04-01 21:47:42.163913'),(531,'certificates','0015_add_masters_choice','2019-04-05 14:57:27.206603'),(532,'enterprise','0067_add_role_based_access_control_switch','2019-04-08 20:45:27.538157'),(533,'program_enrollments','0001_initial','2019-04-10 20:26:00.692153'),(534,'program_enrollments','0002_historicalprogramcourseenrollment_programcourseenrollment','2019-04-18 16:08:03.137722'),(535,'third_party_auth','0023_auto_20190418_2033','2019-04-24 13:54:18.834044'),(536,'program_enrollments','0003_auto_20190424_1622','2019-04-24 16:35:05.844296'),(537,'courseware','0008_move_idde_to_edx_when','2019-04-25 14:14:41.176920'),(538,'edx_when','0001_initial','2019-04-25 14:14:42.645389'),(539,'edx_when','0002_auto_20190318_1736','2019-04-25 14:14:44.336320'),(540,'edx_when','0003_auto_20190402_1501','2019-04-25 14:14:46.294533'); +INSERT INTO `django_migrations` VALUES (1,'contenttypes','0001_initial','2019-02-06 08:03:27.973279'),(2,'auth','0001_initial','2019-02-06 08:03:28.047577'),(3,'admin','0001_initial','2019-02-06 08:03:28.084214'),(4,'admin','0002_logentry_remove_auto_add','2019-02-06 08:03:28.117004'),(5,'sites','0001_initial','2019-02-06 08:03:28.138797'),(6,'contenttypes','0002_remove_content_type_name','2019-02-06 08:03:28.216567'),(7,'api_admin','0001_initial','2019-02-06 08:03:28.285457'),(8,'api_admin','0002_auto_20160325_1604','2019-02-06 08:03:28.307547'),(9,'api_admin','0003_auto_20160404_1618','2019-02-06 08:03:28.500622'),(10,'api_admin','0004_auto_20160412_1506','2019-02-06 08:03:28.633954'),(11,'api_admin','0005_auto_20160414_1232','2019-02-06 08:03:28.673633'),(12,'api_admin','0006_catalog','2019-02-06 08:03:28.696279'),(13,'api_admin','0007_delete_historical_api_records','2019-02-06 08:03:28.816693'),(14,'assessment','0001_initial','2019-02-06 08:03:29.290939'),(15,'assessment','0002_staffworkflow','2019-02-06 08:03:29.313966'),(16,'assessment','0003_expand_course_id','2019-02-06 08:03:29.378298'),(17,'auth','0002_alter_permission_name_max_length','2019-02-06 08:03:29.412172'),(18,'auth','0003_alter_user_email_max_length','2019-02-06 08:03:29.449614'),(19,'auth','0004_alter_user_username_opts','2019-02-06 08:03:29.489793'),(20,'auth','0005_alter_user_last_login_null','2019-02-06 08:03:29.529832'),(21,'auth','0006_require_contenttypes_0002','2019-02-06 08:03:29.535701'),(22,'auth','0007_alter_validators_add_error_messages','2019-02-06 08:03:29.572495'),(23,'auth','0008_alter_user_username_max_length','2019-02-06 08:03:29.606716'),(24,'instructor_task','0001_initial','2019-02-06 08:03:29.648070'),(25,'certificates','0001_initial','2019-02-06 08:03:30.038510'),(26,'certificates','0002_data__certificatehtmlviewconfiguration_data','2019-02-06 08:03:30.060258'),(27,'certificates','0003_data__default_modes','2019-02-06 08:03:30.081042'),(28,'certificates','0004_certificategenerationhistory','2019-02-06 08:03:30.138110'),(29,'certificates','0005_auto_20151208_0801','2019-02-06 08:03:30.188489'),(30,'certificates','0006_certificatetemplateasset_asset_slug','2019-02-06 08:03:30.217197'),(31,'certificates','0007_certificateinvalidation','2019-02-06 08:03:30.269518'),(32,'badges','0001_initial','2019-02-06 08:03:30.415373'),(33,'badges','0002_data__migrate_assertions','2019-02-06 08:03:30.438183'),(34,'badges','0003_schema__add_event_configuration','2019-02-06 08:03:30.731342'),(35,'block_structure','0001_config','2019-02-06 08:03:30.788599'),(36,'block_structure','0002_blockstructuremodel','2019-02-06 08:03:30.816557'),(37,'block_structure','0003_blockstructuremodel_storage','2019-02-06 08:03:30.846376'),(38,'block_structure','0004_blockstructuremodel_usagekeywithrun','2019-02-06 08:03:30.880450'),(39,'bookmarks','0001_initial','2019-02-06 08:03:31.054199'),(40,'branding','0001_initial','2019-02-06 08:03:31.166611'),(41,'course_modes','0001_initial','2019-02-06 08:03:31.243105'),(42,'course_modes','0002_coursemode_expiration_datetime_is_explicit','2019-02-06 08:03:31.269180'),(43,'course_modes','0003_auto_20151113_1443','2019-02-06 08:03:31.298423'),(44,'course_modes','0004_auto_20151113_1457','2019-02-06 08:03:31.371839'),(45,'course_modes','0005_auto_20151217_0958','2019-02-06 08:03:31.410727'),(46,'course_modes','0006_auto_20160208_1407','2019-02-06 08:03:31.485161'),(47,'course_modes','0007_coursemode_bulk_sku','2019-02-06 08:03:31.516196'),(48,'course_groups','0001_initial','2019-02-06 08:03:32.021134'),(49,'bulk_email','0001_initial','2019-02-06 08:03:32.263160'),(50,'bulk_email','0002_data__load_course_email_template','2019-02-06 08:03:32.285972'),(51,'bulk_email','0003_config_model_feature_flag','2019-02-06 08:03:32.366594'),(52,'bulk_email','0004_add_email_targets','2019-02-06 08:03:32.873567'),(53,'bulk_email','0005_move_target_data','2019-02-06 08:03:32.900737'),(54,'bulk_email','0006_course_mode_targets','2019-02-06 08:03:33.043008'),(55,'catalog','0001_initial','2019-02-06 08:03:33.155594'),(56,'catalog','0002_catalogintegration_username','2019-02-06 08:03:33.250400'),(57,'catalog','0003_catalogintegration_page_size','2019-02-06 08:03:33.342320'),(58,'catalog','0004_auto_20170616_0618','2019-02-06 08:03:33.440389'),(59,'catalog','0005_catalogintegration_long_term_cache_ttl','2019-02-06 08:03:33.567527'),(60,'discussion_common','0001_initial','2019-02-06 08:03:33.854539'),(61,'discussion_common','0002_forumsconfig','2019-02-06 08:03:33.972708'),(62,'verified_track_content','0001_initial','2019-02-06 08:03:33.998702'),(63,'course_overviews','0001_initial','2019-02-06 08:03:34.057460'),(64,'course_overviews','0002_add_course_catalog_fields','2019-02-06 08:03:34.224588'),(65,'course_overviews','0003_courseoverviewgeneratedhistory','2019-02-06 08:03:34.285061'),(66,'course_overviews','0004_courseoverview_org','2019-02-06 08:03:34.361105'),(67,'course_overviews','0005_delete_courseoverviewgeneratedhistory','2019-02-06 08:03:34.421372'),(68,'course_overviews','0006_courseoverviewimageset','2019-02-06 08:03:34.487776'),(69,'course_overviews','0007_courseoverviewimageconfig','2019-02-06 08:03:34.633259'),(70,'course_overviews','0008_remove_courseoverview_facebook_url','2019-02-06 08:03:34.646695'),(71,'course_overviews','0009_readd_facebook_url','2019-02-06 08:03:34.725856'),(72,'course_overviews','0010_auto_20160329_2317','2019-02-06 08:03:34.825796'),(73,'ccx','0001_initial','2019-02-06 08:03:35.149281'),(74,'ccx','0002_customcourseforedx_structure_json','2019-02-06 08:03:35.213941'),(75,'ccx','0003_add_master_course_staff_in_ccx','2019-02-06 08:03:35.275108'),(76,'ccx','0004_seed_forum_roles_in_ccx_courses','2019-02-06 08:03:35.320321'),(77,'ccx','0005_change_ccx_coach_to_staff','2019-02-06 08:03:35.350700'),(78,'ccx','0006_set_display_name_as_override','2019-02-06 08:03:35.391529'),(79,'ccxcon','0001_initial_ccxcon_model','2019-02-06 08:03:35.425585'),(80,'ccxcon','0002_auto_20160325_0407','2019-02-06 08:03:35.481080'),(81,'djcelery','0001_initial','2019-02-06 08:03:36.180254'),(82,'celery_utils','0001_initial','2019-02-06 08:03:36.284503'),(83,'celery_utils','0002_chordable_django_backend','2019-02-06 08:03:36.366801'),(84,'certificates','0008_schema__remove_badges','2019-02-06 08:03:36.556119'),(85,'certificates','0009_certificategenerationcoursesetting_language_self_generation','2019-02-06 08:03:36.773167'),(86,'certificates','0010_certificatetemplate_language','2019-02-06 08:03:36.815500'),(87,'certificates','0011_certificatetemplate_alter_unique','2019-02-06 08:03:36.919819'),(88,'certificates','0012_certificategenerationcoursesetting_include_hours_of_effort','2019-02-06 08:03:36.957024'),(89,'certificates','0013_remove_certificategenerationcoursesetting_enabled','2019-02-06 08:03:37.024718'),(90,'certificates','0014_change_eligible_certs_manager','2019-02-06 08:03:37.104973'),(91,'commerce','0001_data__add_ecommerce_service_user','2019-02-06 08:03:37.147354'),(92,'commerce','0002_commerceconfiguration','2019-02-06 08:03:37.232132'),(93,'commerce','0003_auto_20160329_0709','2019-02-06 08:03:37.297795'),(94,'commerce','0004_auto_20160531_0950','2019-02-06 08:03:37.417586'),(95,'commerce','0005_commerceconfiguration_enable_automatic_refund_approval','2019-02-06 08:03:37.504233'),(96,'commerce','0006_auto_20170424_1734','2019-02-06 08:03:37.578243'),(97,'commerce','0007_auto_20180313_0609','2019-02-06 08:03:37.688751'),(98,'completion','0001_initial','2019-02-06 08:03:37.847750'),(99,'completion','0002_auto_20180125_1510','2019-02-06 08:03:37.917588'),(100,'enterprise','0001_initial','2019-02-06 08:03:38.090862'),(101,'enterprise','0002_enterprisecustomerbrandingconfiguration','2019-02-06 08:03:38.142785'),(102,'enterprise','0003_auto_20161104_0937','2019-02-06 08:03:38.362358'),(103,'enterprise','0004_auto_20161114_0434','2019-02-06 08:03:38.484589'),(104,'enterprise','0005_pendingenterprisecustomeruser','2019-02-06 08:03:38.565074'),(105,'enterprise','0006_auto_20161121_0241','2019-02-06 08:03:38.604288'),(106,'enterprise','0007_auto_20161109_1511','2019-02-06 08:03:38.706534'),(107,'enterprise','0008_auto_20161124_2355','2019-02-06 08:03:38.935742'),(108,'enterprise','0009_auto_20161130_1651','2019-02-06 08:03:39.582739'),(109,'enterprise','0010_auto_20161222_1212','2019-02-06 08:03:39.710110'),(110,'enterprise','0011_enterprisecustomerentitlement_historicalenterprisecustomerentitlement','2019-02-06 08:03:39.820222'),(111,'enterprise','0012_auto_20170125_1033','2019-02-06 08:03:39.921636'),(112,'enterprise','0013_auto_20170125_1157','2019-02-06 08:03:40.091299'),(113,'enterprise','0014_enrollmentnotificationemailtemplate_historicalenrollmentnotificationemailtemplate','2019-02-06 08:03:40.226864'),(114,'enterprise','0015_auto_20170130_0003','2019-02-06 08:03:40.375822'),(115,'enterprise','0016_auto_20170405_0647','2019-02-06 08:03:41.108702'),(116,'enterprise','0017_auto_20170508_1341','2019-02-06 08:03:41.558782'),(117,'enterprise','0018_auto_20170511_1357','2019-02-06 08:03:41.671248'),(118,'enterprise','0019_auto_20170606_1853','2019-02-06 08:03:41.795407'),(119,'enterprise','0020_auto_20170624_2316','2019-02-06 08:03:42.114378'),(120,'enterprise','0021_auto_20170711_0712','2019-02-06 08:03:42.443741'),(121,'enterprise','0022_auto_20170720_1543','2019-02-06 08:03:42.555544'),(122,'enterprise','0023_audit_data_reporting_flag','2019-02-06 08:03:42.667708'),(123,'enterprise','0024_enterprisecustomercatalog_historicalenterprisecustomercatalog','2019-02-06 08:03:42.823862'),(124,'enterprise','0025_auto_20170828_1412','2019-02-06 08:03:43.148897'),(125,'enterprise','0026_make_require_account_level_consent_nullable','2019-02-06 08:03:43.564302'),(126,'enterprise','0027_remove_account_level_consent','2019-02-06 08:03:44.095360'),(127,'enterprise','0028_link_enterprise_to_enrollment_template','2019-02-06 08:03:44.318418'),(128,'enterprise','0029_auto_20170925_1909','2019-02-06 08:03:44.398129'),(129,'enterprise','0030_auto_20171005_1600','2019-02-06 08:03:44.553947'),(130,'enterprise','0031_auto_20171012_1249','2019-02-06 08:03:44.725906'),(131,'enterprise','0032_reporting_model','2019-02-06 08:03:44.840167'),(132,'enterprise','0033_add_history_change_reason_field','2019-02-06 08:03:45.245971'),(133,'enterprise','0034_auto_20171023_0727','2019-02-06 08:03:45.385659'),(134,'enterprise','0035_auto_20171212_1129','2019-02-06 08:03:45.513332'),(135,'enterprise','0036_sftp_reporting_support','2019-02-06 08:03:46.086601'),(136,'enterprise','0037_auto_20180110_0450','2019-02-06 08:03:46.208354'),(137,'enterprise','0038_auto_20180122_1427','2019-02-06 08:03:46.303546'),(138,'enterprise','0039_auto_20180129_1034','2019-02-06 08:03:46.415988'),(139,'enterprise','0040_auto_20180129_1428','2019-02-06 08:03:46.564661'),(140,'enterprise','0041_auto_20180212_1507','2019-02-06 08:03:46.626003'),(141,'consent','0001_initial','2019-02-06 08:03:46.846549'),(142,'consent','0002_migrate_to_new_data_sharing_consent','2019-02-06 08:03:46.875083'),(143,'consent','0003_historicaldatasharingconsent_history_change_reason','2019-02-06 08:03:46.965702'),(144,'consent','0004_datasharingconsenttextoverrides','2019-02-06 08:03:47.065885'),(145,'sites','0002_alter_domain_unique','2019-02-06 08:03:47.113519'),(146,'course_overviews','0011_courseoverview_marketing_url','2019-02-06 08:03:47.173117'),(147,'course_overviews','0012_courseoverview_eligible_for_financial_aid','2019-02-06 08:03:47.251335'),(148,'course_overviews','0013_courseoverview_language','2019-02-06 08:03:47.323251'),(149,'course_overviews','0014_courseoverview_certificate_available_date','2019-02-06 08:03:47.375112'),(150,'content_type_gating','0001_initial','2019-02-06 08:03:47.504223'),(151,'content_type_gating','0002_auto_20181119_0959','2019-02-06 08:03:47.696167'),(152,'content_type_gating','0003_auto_20181128_1407','2019-02-06 08:03:47.802689'),(153,'content_type_gating','0004_auto_20181128_1521','2019-02-06 08:03:47.899743'),(154,'contentserver','0001_initial','2019-02-06 08:03:48.012402'),(155,'contentserver','0002_cdnuseragentsconfig','2019-02-06 08:03:48.115897'),(156,'cors_csrf','0001_initial','2019-02-06 08:03:48.228961'),(157,'course_action_state','0001_initial','2019-02-06 08:03:48.432637'),(158,'course_duration_limits','0001_initial','2019-02-06 08:03:48.561335'),(159,'course_duration_limits','0002_auto_20181119_0959','2019-02-06 08:03:49.033726'),(160,'course_duration_limits','0003_auto_20181128_1407','2019-02-06 08:03:49.154788'),(161,'course_duration_limits','0004_auto_20181128_1521','2019-02-06 08:03:49.286782'),(162,'course_goals','0001_initial','2019-02-06 08:03:49.504320'),(163,'course_goals','0002_auto_20171010_1129','2019-02-06 08:03:49.596345'),(164,'course_groups','0002_change_inline_default_cohort_value','2019-02-06 08:03:49.642049'),(165,'course_groups','0003_auto_20170609_1455','2019-02-06 08:03:50.080016'),(166,'course_modes','0008_course_key_field_to_foreign_key','2019-02-06 08:03:50.526973'),(167,'course_modes','0009_suggested_prices_to_charfield','2019-02-06 08:03:50.584282'),(168,'course_modes','0010_archived_suggested_prices_to_charfield','2019-02-06 08:03:50.629980'),(169,'course_modes','0011_change_regex_for_comma_separated_ints','2019-02-06 08:03:50.727914'),(170,'courseware','0001_initial','2019-02-06 08:03:53.237177'),(171,'courseware','0002_coursedynamicupgradedeadlineconfiguration_dynamicupgradedeadlineconfiguration','2019-02-06 08:03:53.619502'),(172,'courseware','0003_auto_20170825_0935','2019-02-06 08:03:53.747454'),(173,'courseware','0004_auto_20171010_1639','2019-02-06 08:03:53.895768'),(174,'courseware','0005_orgdynamicupgradedeadlineconfiguration','2019-02-06 08:03:54.230018'),(175,'courseware','0006_remove_module_id_index','2019-02-06 08:03:54.435353'),(176,'courseware','0007_remove_done_index','2019-02-06 08:03:55.012607'),(177,'coursewarehistoryextended','0001_initial','2019-02-06 08:03:55.303411'),(178,'coursewarehistoryextended','0002_force_studentmodule_index','2019-02-06 08:03:55.370079'),(179,'crawlers','0001_initial','2019-02-06 08:03:55.442696'),(180,'crawlers','0002_auto_20170419_0018','2019-02-06 08:03:55.510303'),(181,'credentials','0001_initial','2019-02-06 08:03:55.578783'),(182,'credentials','0002_auto_20160325_0631','2019-02-06 08:03:55.640533'),(183,'credentials','0003_auto_20170525_1109','2019-02-06 08:03:55.760811'),(184,'credentials','0004_notifycredentialsconfig','2019-02-06 08:03:55.827343'),(185,'credit','0001_initial','2019-02-06 08:03:56.379666'),(186,'credit','0002_creditconfig','2019-02-06 08:03:56.456288'),(187,'credit','0003_auto_20160511_2227','2019-02-06 08:03:56.510076'),(188,'credit','0004_delete_historical_credit_records','2019-02-06 08:03:56.908755'),(189,'dark_lang','0001_initial','2019-02-06 08:03:56.974435'),(190,'dark_lang','0002_data__enable_on_install','2019-02-06 08:03:57.008178'),(191,'dark_lang','0003_auto_20180425_0359','2019-02-06 08:03:57.123998'),(192,'database_fixups','0001_initial','2019-02-06 08:03:57.156768'),(193,'degreed','0001_initial','2019-02-06 08:03:58.035952'),(194,'degreed','0002_auto_20180104_0103','2019-02-06 08:03:58.408761'),(195,'degreed','0003_auto_20180109_0712','2019-02-06 08:03:58.616044'),(196,'degreed','0004_auto_20180306_1251','2019-02-06 08:03:58.814623'),(197,'degreed','0005_auto_20180807_1302','2019-02-06 08:04:00.635482'),(198,'degreed','0006_upgrade_django_simple_history','2019-02-06 08:04:00.815237'),(199,'discussion_common','0003_enable_forums','2019-02-06 08:04:00.851878'),(200,'discussion_common','0004_auto_20161117_1209','2019-02-06 08:04:01.011618'),(201,'discussion_common','0005_coursediscussionsettings','2019-02-06 08:04:01.048387'),(202,'discussion_common','0006_coursediscussionsettings_discussions_id_map','2019-02-06 08:04:01.092669'),(203,'discussion_common','0007_discussionsidmapping','2019-02-06 08:04:01.135336'),(204,'discussion_common','0008_role_user_index','2019-02-06 08:04:01.166345'),(205,'django_notify','0001_initial','2019-02-06 08:04:01.899046'),(206,'django_openid_auth','0001_initial','2019-02-06 08:04:02.148673'),(207,'oauth2','0001_initial','2019-02-06 08:04:03.447522'),(208,'edx_oauth2_provider','0001_initial','2019-02-06 08:04:03.637123'),(209,'edx_proctoring','0001_initial','2019-02-06 08:04:06.249264'),(210,'edx_proctoring','0002_proctoredexamstudentattempt_is_status_acknowledged','2019-02-06 08:04:06.453204'),(211,'edx_proctoring','0003_auto_20160101_0525','2019-02-06 08:04:06.849450'),(212,'edx_proctoring','0004_auto_20160201_0523','2019-02-06 08:04:07.035676'),(213,'edx_proctoring','0005_proctoredexam_hide_after_due','2019-02-06 08:04:07.119540'),(214,'edx_proctoring','0006_allowed_time_limit_mins','2019-02-06 08:04:07.870116'),(215,'edx_proctoring','0007_proctoredexam_backend','2019-02-06 08:04:07.931188'),(216,'edx_proctoring','0008_auto_20181116_1551','2019-02-06 08:04:08.424205'),(217,'edx_proctoring','0009_proctoredexamreviewpolicy_remove_rules','2019-02-06 08:04:08.762512'),(218,'edxval','0001_initial','2019-02-06 08:04:09.122448'),(219,'edxval','0002_data__default_profiles','2019-02-06 08:04:09.157306'),(220,'edxval','0003_coursevideo_is_hidden','2019-02-06 08:04:09.208230'),(221,'edxval','0004_data__add_hls_profile','2019-02-06 08:04:09.249124'),(222,'edxval','0005_videoimage','2019-02-06 08:04:09.314101'),(223,'edxval','0006_auto_20171009_0725','2019-02-06 08:04:09.422431'),(224,'edxval','0007_transcript_credentials_state','2019-02-06 08:04:09.502957'),(225,'edxval','0008_remove_subtitles','2019-02-06 08:04:09.597483'),(226,'edxval','0009_auto_20171127_0406','2019-02-06 08:04:09.650707'),(227,'edxval','0010_add_video_as_foreign_key','2019-02-06 08:04:09.853179'),(228,'edxval','0011_data__add_audio_mp3_profile','2019-02-06 08:04:09.888952'),(229,'email_marketing','0001_initial','2019-02-06 08:04:10.490362'),(230,'email_marketing','0002_auto_20160623_1656','2019-02-06 08:04:12.322113'),(231,'email_marketing','0003_auto_20160715_1145','2019-02-06 08:04:13.625016'),(232,'email_marketing','0004_emailmarketingconfiguration_welcome_email_send_delay','2019-02-06 08:04:13.804721'),(233,'email_marketing','0005_emailmarketingconfiguration_user_registration_cookie_timeout_delay','2019-02-06 08:04:13.987226'),(234,'email_marketing','0006_auto_20170711_0615','2019-02-06 08:04:14.175392'),(235,'email_marketing','0007_auto_20170809_0653','2019-02-06 08:04:14.743333'),(236,'email_marketing','0008_auto_20170809_0539','2019-02-06 08:04:14.781400'),(237,'email_marketing','0009_remove_emailmarketingconfiguration_sailthru_activation_template','2019-02-06 08:04:15.000262'),(238,'email_marketing','0010_auto_20180425_0800','2019-02-06 08:04:15.577846'),(239,'embargo','0001_initial','2019-02-06 08:04:16.853715'),(240,'embargo','0002_data__add_countries','2019-02-06 08:04:16.895352'),(241,'enterprise','0042_replace_sensitive_sso_username','2019-02-06 08:04:17.169747'),(242,'enterprise','0043_auto_20180507_0138','2019-02-06 08:04:17.765765'),(243,'enterprise','0044_reporting_config_multiple_types','2019-02-06 08:04:18.048084'),(244,'enterprise','0045_report_type_json','2019-02-06 08:04:18.121655'),(245,'enterprise','0046_remove_unique_constraints','2019-02-06 08:04:18.194060'),(246,'enterprise','0047_auto_20180517_0457','2019-02-06 08:04:18.519446'),(247,'enterprise','0048_enterprisecustomeruser_active','2019-02-06 08:04:18.962011'),(248,'enterprise','0049_auto_20180531_0321','2019-02-06 08:04:20.082033'),(249,'enterprise','0050_progress_v2','2019-02-06 08:04:20.186103'),(250,'enterprise','0051_add_enterprise_slug','2019-02-06 08:04:20.652158'),(251,'enterprise','0052_create_unique_slugs','2019-02-06 08:04:21.259457'),(252,'enterprise','0053_pendingenrollment_cohort_name','2019-02-06 08:04:21.457833'),(253,'enterprise','0053_auto_20180911_0811','2019-02-06 08:04:22.130573'),(254,'enterprise','0054_merge_20180914_1511','2019-02-06 08:04:22.143011'),(255,'enterprise','0055_auto_20181015_1112','2019-02-06 08:04:22.603605'),(256,'enterprise','0056_enterprisecustomerreportingconfiguration_pgp_encryption_key','2019-02-06 08:04:22.718871'),(257,'enterprise','0057_enterprisecustomerreportingconfiguration_enterprise_customer_catalogs','2019-02-06 08:04:23.004578'),(258,'enterprise','0058_auto_20181212_0145','2019-02-06 08:04:23.860134'),(259,'enterprise','0059_add_code_management_portal_config','2019-02-06 08:04:24.184355'),(260,'enterprise','0060_upgrade_django_simple_history','2019-02-06 08:04:24.698860'),(261,'student','0001_initial','2019-02-06 08:04:31.285410'),(262,'student','0002_auto_20151208_1034','2019-02-06 08:04:31.449034'),(263,'student','0003_auto_20160516_0938','2019-02-06 08:04:31.626628'),(264,'student','0004_auto_20160531_1422','2019-02-06 08:04:31.724604'),(265,'student','0005_auto_20160531_1653','2019-02-06 08:04:32.170241'),(266,'student','0006_logoutviewconfiguration','2019-02-06 08:04:32.266892'),(267,'student','0007_registrationcookieconfiguration','2019-02-06 08:04:32.366689'),(268,'student','0008_auto_20161117_1209','2019-02-06 08:04:32.463972'),(269,'student','0009_auto_20170111_0422','2019-02-06 08:04:32.558706'),(270,'student','0010_auto_20170207_0458','2019-02-06 08:04:32.564759'),(271,'student','0011_course_key_field_to_foreign_key','2019-02-06 08:04:34.027590'),(272,'student','0012_sociallink','2019-02-06 08:04:34.353842'),(273,'student','0013_delete_historical_enrollment_records','2019-02-06 08:04:35.810292'),(274,'entitlements','0001_initial','2019-02-06 08:04:36.165929'),(275,'entitlements','0002_auto_20171102_0719','2019-02-06 08:04:38.257565'),(276,'entitlements','0003_auto_20171205_1431','2019-02-06 08:04:40.470342'),(277,'entitlements','0004_auto_20171206_1729','2019-02-06 08:04:40.982538'),(278,'entitlements','0005_courseentitlementsupportdetail','2019-02-06 08:04:41.539847'),(279,'entitlements','0006_courseentitlementsupportdetail_action','2019-02-06 08:04:41.979223'),(280,'entitlements','0007_change_expiration_period_default','2019-02-06 08:04:42.159096'),(281,'entitlements','0008_auto_20180328_1107','2019-02-06 08:04:42.683695'),(282,'entitlements','0009_courseentitlement_refund_locked','2019-02-06 08:04:43.025841'),(283,'entitlements','0010_backfill_refund_lock','2019-02-06 08:04:43.067438'),(284,'experiments','0001_initial','2019-02-06 08:04:44.694218'),(285,'experiments','0002_auto_20170627_1402','2019-02-06 08:04:44.793494'),(286,'experiments','0003_auto_20170713_1148','2019-02-06 08:04:44.853420'),(287,'external_auth','0001_initial','2019-02-06 08:04:45.445694'),(288,'grades','0001_initial','2019-02-06 08:04:45.632121'),(289,'grades','0002_rename_last_edited_field','2019-02-06 08:04:45.699684'),(290,'grades','0003_coursepersistentgradesflag_persistentgradesenabledflag','2019-02-06 08:04:46.457202'),(291,'grades','0004_visibleblocks_course_id','2019-02-06 08:04:46.531908'),(292,'grades','0005_multiple_course_flags','2019-02-06 08:04:46.849592'),(293,'grades','0006_persistent_course_grades','2019-02-06 08:04:46.952796'),(294,'grades','0007_add_passed_timestamp_column','2019-02-06 08:04:47.066573'),(295,'grades','0008_persistentsubsectiongrade_first_attempted','2019-02-06 08:04:47.138816'),(296,'grades','0009_auto_20170111_1507','2019-02-06 08:04:47.259581'),(297,'grades','0010_auto_20170112_1156','2019-02-06 08:04:47.344906'),(298,'grades','0011_null_edited_time','2019-02-06 08:04:47.527358'),(299,'grades','0012_computegradessetting','2019-02-06 08:04:48.367572'),(300,'grades','0013_persistentsubsectiongradeoverride','2019-02-06 08:04:48.436380'),(301,'grades','0014_persistentsubsectiongradeoverridehistory','2019-02-06 08:04:48.767621'),(302,'instructor_task','0002_gradereportsetting','2019-02-06 08:04:49.116174'),(303,'waffle','0001_initial','2019-02-06 08:04:49.522307'),(304,'sap_success_factors','0001_initial','2019-02-06 08:04:50.784688'),(305,'sap_success_factors','0002_auto_20170224_1545','2019-02-06 08:04:52.503372'),(306,'sap_success_factors','0003_auto_20170317_1402','2019-02-06 08:04:53.057896'),(307,'sap_success_factors','0004_catalogtransmissionaudit_audit_summary','2019-02-06 08:04:53.112654'),(308,'sap_success_factors','0005_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 08:04:53.414309'),(309,'sap_success_factors','0006_sapsuccessfactors_use_enterprise_enrollment_page_waffle_flag','2019-02-06 08:04:53.467401'),(310,'sap_success_factors','0007_remove_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 08:04:53.753419'),(311,'sap_success_factors','0008_historicalsapsuccessfactorsenterprisecustomerconfiguration_history_change_reason','2019-02-06 08:04:54.072310'),(312,'sap_success_factors','0009_sapsuccessfactors_remove_enterprise_enrollment_page_waffle_flag','2019-02-06 08:04:54.115078'),(313,'sap_success_factors','0010_move_audit_tables_to_base_integrated_channel','2019-02-06 08:04:54.280162'),(314,'integrated_channel','0001_initial','2019-02-06 08:04:54.374204'),(315,'integrated_channel','0002_delete_enterpriseintegratedchannel','2019-02-06 08:04:54.413351'),(316,'integrated_channel','0003_catalogtransmissionaudit_learnerdatatransmissionaudit','2019-02-06 08:04:54.514947'),(317,'integrated_channel','0004_catalogtransmissionaudit_channel','2019-02-06 08:04:54.566483'),(318,'integrated_channel','0005_auto_20180306_1251','2019-02-06 08:04:55.508336'),(319,'integrated_channel','0006_delete_catalogtransmissionaudit','2019-02-06 08:04:55.564564'),(320,'lms_xblock','0001_initial','2019-02-06 08:04:55.920260'),(321,'microsite_configuration','0001_initial','2019-02-06 08:04:59.149839'),(322,'microsite_configuration','0002_auto_20160202_0228','2019-02-06 08:04:59.263415'),(323,'microsite_configuration','0003_delete_historical_records','2019-02-06 08:05:00.613558'),(324,'milestones','0001_initial','2019-02-06 08:05:01.624456'),(325,'milestones','0002_data__seed_relationship_types','2019-02-06 08:05:01.663935'),(326,'milestones','0003_coursecontentmilestone_requirements','2019-02-06 08:05:01.731497'),(327,'milestones','0004_auto_20151221_1445','2019-02-06 08:05:01.953395'),(328,'mobile_api','0001_initial','2019-02-06 08:05:02.276280'),(329,'mobile_api','0002_auto_20160406_0904','2019-02-06 08:05:02.375950'),(330,'mobile_api','0003_ignore_mobile_available_flag','2019-02-06 08:05:02.955623'),(331,'notes','0001_initial','2019-02-06 08:05:03.284134'),(332,'oauth2','0002_auto_20160404_0813','2019-02-06 08:05:04.320559'),(333,'oauth2','0003_client_logout_uri','2019-02-06 08:05:05.028463'),(334,'oauth2','0004_add_index_on_grant_expires','2019-02-06 08:05:05.320810'),(335,'oauth2','0005_grant_nonce','2019-02-06 08:05:05.628866'),(336,'organizations','0001_initial','2019-02-06 08:05:05.786592'),(337,'organizations','0002_auto_20170117_1434','2019-02-06 08:05:05.850615'),(338,'organizations','0003_auto_20170221_1138','2019-02-06 08:05:05.970702'),(339,'organizations','0004_auto_20170413_2315','2019-02-06 08:05:06.085590'),(340,'organizations','0005_auto_20171116_0640','2019-02-06 08:05:06.148448'),(341,'organizations','0006_auto_20171207_0259','2019-02-06 08:05:06.215454'),(342,'oauth2_provider','0001_initial','2019-02-06 08:05:07.961621'),(343,'oauth_dispatch','0001_initial','2019-02-06 08:05:08.350586'),(344,'oauth_dispatch','0002_scopedapplication_scopedapplicationorganization','2019-02-06 08:05:09.132604'),(345,'oauth_dispatch','0003_application_data','2019-02-06 08:05:09.196710'),(346,'oauth_dispatch','0004_auto_20180626_1349','2019-02-06 08:05:11.499019'),(347,'oauth_dispatch','0005_applicationaccess_type','2019-02-06 08:05:11.606808'),(348,'oauth_dispatch','0006_drop_application_id_constraints','2019-02-06 08:05:11.875498'),(349,'oauth2_provider','0002_08_updates','2019-02-06 08:05:12.127180'),(350,'oauth2_provider','0003_auto_20160316_1503','2019-02-06 08:05:12.219934'),(351,'oauth2_provider','0004_auto_20160525_1623','2019-02-06 08:05:12.448186'),(352,'oauth2_provider','0005_auto_20170514_1141','2019-02-06 08:05:13.676168'),(353,'oauth2_provider','0006_auto_20171214_2232','2019-02-06 08:05:14.539094'),(354,'oauth_dispatch','0007_restore_application_id_constraints','2019-02-06 08:05:14.834346'),(355,'oauth_provider','0001_initial','2019-02-06 08:05:15.171734'),(356,'problem_builder','0001_initial','2019-02-06 08:05:15.299615'),(357,'problem_builder','0002_auto_20160121_1525','2019-02-06 08:05:15.503283'),(358,'problem_builder','0003_auto_20161124_0755','2019-02-06 08:05:15.621050'),(359,'problem_builder','0004_copy_course_ids','2019-02-06 08:05:15.672698'),(360,'problem_builder','0005_auto_20170112_1021','2019-02-06 08:05:15.822489'),(361,'problem_builder','0006_remove_deprecated_course_id','2019-02-06 08:05:15.937076'),(362,'programs','0001_initial','2019-02-06 08:05:16.056792'),(363,'programs','0002_programsapiconfig_cache_ttl','2019-02-06 08:05:16.160203'),(364,'programs','0003_auto_20151120_1613','2019-02-06 08:05:16.532675'),(365,'programs','0004_programsapiconfig_enable_certification','2019-02-06 08:05:17.329411'),(366,'programs','0005_programsapiconfig_max_retries','2019-02-06 08:05:17.560011'),(367,'programs','0006_programsapiconfig_xseries_ad_enabled','2019-02-06 08:05:17.710363'),(368,'programs','0007_programsapiconfig_program_listing_enabled','2019-02-06 08:05:17.830224'),(369,'programs','0008_programsapiconfig_program_details_enabled','2019-02-06 08:05:17.950796'),(370,'programs','0009_programsapiconfig_marketing_path','2019-02-06 08:05:18.079013'),(371,'programs','0010_auto_20170204_2332','2019-02-06 08:05:18.382249'),(372,'programs','0011_auto_20170301_1844','2019-02-06 08:05:19.698119'),(373,'programs','0012_auto_20170419_0018','2019-02-06 08:05:19.800404'),(374,'redirects','0001_initial','2019-02-06 08:05:20.155019'),(375,'rss_proxy','0001_initial','2019-02-06 08:05:20.204027'),(376,'sap_success_factors','0011_auto_20180104_0103','2019-02-06 08:05:24.276543'),(377,'sap_success_factors','0012_auto_20180109_0712','2019-02-06 08:05:24.679152'),(378,'sap_success_factors','0013_auto_20180306_1251','2019-02-06 08:05:25.083064'),(379,'sap_success_factors','0014_drop_historical_table','2019-02-06 08:05:25.129347'),(380,'sap_success_factors','0015_auto_20180510_1259','2019-02-06 08:05:25.860155'),(381,'sap_success_factors','0016_sapsuccessfactorsenterprisecustomerconfiguration_additional_locales','2019-02-06 08:05:25.960191'),(382,'sap_success_factors','0017_sapsuccessfactorsglobalconfiguration_search_student_api_path','2019-02-06 08:05:26.285693'),(383,'schedules','0001_initial','2019-02-06 08:05:26.690791'),(384,'schedules','0002_auto_20170816_1532','2019-02-06 08:05:27.302276'),(385,'schedules','0003_scheduleconfig','2019-02-06 08:05:27.646134'),(386,'schedules','0004_auto_20170922_1428','2019-02-06 08:05:28.252876'),(387,'schedules','0005_auto_20171010_1722','2019-02-06 08:05:28.881956'),(388,'schedules','0006_scheduleexperience','2019-02-06 08:05:29.251797'),(389,'schedules','0007_scheduleconfig_hold_back_ratio','2019-02-06 08:05:29.617048'),(390,'self_paced','0001_initial','2019-02-06 08:05:30.027241'),(391,'sessions','0001_initial','2019-02-06 08:05:30.078048'),(392,'shoppingcart','0001_initial','2019-02-06 08:05:38.998266'),(393,'shoppingcart','0002_auto_20151208_1034','2019-02-06 08:05:39.154428'),(394,'shoppingcart','0003_auto_20151217_0958','2019-02-06 08:05:39.312762'),(395,'shoppingcart','0004_change_meta_options','2019-02-06 08:05:39.468307'),(396,'site_configuration','0001_initial','2019-02-06 08:05:40.221457'),(397,'site_configuration','0002_auto_20160720_0231','2019-02-06 08:05:40.436234'),(398,'default','0001_initial','2019-02-06 08:05:41.857778'),(399,'social_auth','0001_initial','2019-02-06 08:05:41.863663'),(400,'default','0002_add_related_name','2019-02-06 08:05:42.234168'),(401,'social_auth','0002_add_related_name','2019-02-06 08:05:42.241171'),(402,'default','0003_alter_email_max_length','2019-02-06 08:05:42.308536'),(403,'social_auth','0003_alter_email_max_length','2019-02-06 08:05:42.316793'),(404,'default','0004_auto_20160423_0400','2019-02-06 08:05:42.679083'),(405,'social_auth','0004_auto_20160423_0400','2019-02-06 08:05:42.685800'),(406,'social_auth','0005_auto_20160727_2333','2019-02-06 08:05:42.757758'),(407,'social_django','0006_partial','2019-02-06 08:05:42.816147'),(408,'social_django','0007_code_timestamp','2019-02-06 08:05:42.883285'),(409,'social_django','0008_partial_timestamp','2019-02-06 08:05:42.957758'),(410,'splash','0001_initial','2019-02-06 08:05:43.433414'),(411,'static_replace','0001_initial','2019-02-06 08:05:44.140144'),(412,'static_replace','0002_assetexcludedextensionsconfig','2019-02-06 08:05:46.566804'),(413,'status','0001_initial','2019-02-06 08:05:47.436513'),(414,'status','0002_update_help_text','2019-02-06 08:05:47.800113'),(415,'student','0014_courseenrollmentallowed_user','2019-02-06 08:05:48.264692'),(416,'student','0015_manualenrollmentaudit_add_role','2019-02-06 08:05:48.712619'),(417,'student','0016_coursenrollment_course_on_delete_do_nothing','2019-02-06 08:05:49.240041'),(418,'student','0017_accountrecovery','2019-02-06 08:05:49.748236'),(419,'student','0018_remove_password_history','2019-02-06 08:05:50.694342'),(420,'student','0019_auto_20181221_0540','2019-02-06 08:05:51.482317'),(421,'submissions','0001_initial','2019-02-06 08:05:51.980676'),(422,'submissions','0002_auto_20151119_0913','2019-02-06 08:05:52.129788'),(423,'submissions','0003_submission_status','2019-02-06 08:05:52.207556'),(424,'submissions','0004_remove_django_extensions','2019-02-06 08:05:52.285295'),(425,'survey','0001_initial','2019-02-06 08:05:53.028225'),(426,'teams','0001_initial','2019-02-06 08:05:56.392431'),(427,'theming','0001_initial','2019-02-06 08:05:57.128347'),(428,'third_party_auth','0001_initial','2019-02-06 08:06:00.383669'),(429,'third_party_auth','0002_schema__provider_icon_image','2019-02-06 08:06:04.313456'),(430,'third_party_auth','0003_samlproviderconfig_debug_mode','2019-02-06 08:06:04.721469'),(431,'third_party_auth','0004_add_visible_field','2019-02-06 08:06:08.188893'),(432,'third_party_auth','0005_add_site_field','2019-02-06 08:06:11.231121'),(433,'third_party_auth','0006_samlproviderconfig_automatic_refresh_enabled','2019-02-06 08:06:11.638402'),(434,'third_party_auth','0007_auto_20170406_0912','2019-02-06 08:06:12.463541'),(435,'third_party_auth','0008_auto_20170413_1455','2019-02-06 08:06:13.699789'),(436,'third_party_auth','0009_auto_20170415_1144','2019-02-06 08:06:15.877426'),(437,'third_party_auth','0010_add_skip_hinted_login_dialog_field','2019-02-06 08:06:17.252327'),(438,'third_party_auth','0011_auto_20170616_0112','2019-02-06 08:06:17.697662'),(439,'third_party_auth','0012_auto_20170626_1135','2019-02-06 08:06:19.014914'),(440,'third_party_auth','0013_sync_learner_profile_data','2019-02-06 08:06:21.184194'),(441,'third_party_auth','0014_auto_20171222_1233','2019-02-06 08:06:22.500576'),(442,'third_party_auth','0015_samlproviderconfig_archived','2019-02-06 08:06:22.910782'),(443,'third_party_auth','0016_auto_20180130_0938','2019-02-06 08:06:23.768574'),(444,'third_party_auth','0017_remove_icon_class_image_secondary_fields','2019-02-06 08:06:25.677996'),(445,'third_party_auth','0018_auto_20180327_1631','2019-02-06 08:06:26.945645'),(446,'third_party_auth','0019_consolidate_slug','2019-02-06 08:06:28.225165'),(447,'third_party_auth','0020_cleanup_slug_fields','2019-02-06 08:06:29.071340'),(448,'third_party_auth','0021_sso_id_verification','2019-02-06 08:06:30.920266'),(449,'third_party_auth','0022_auto_20181012_0307','2019-02-06 08:06:33.001900'),(450,'thumbnail','0001_initial','2019-02-06 08:06:33.058625'),(451,'track','0001_initial','2019-02-06 08:06:33.135878'),(452,'user_api','0001_initial','2019-02-06 08:06:36.568433'),(453,'user_api','0002_retirementstate_userretirementstatus','2019-02-06 08:06:37.067536'),(454,'user_api','0003_userretirementrequest','2019-02-06 08:06:37.538805'),(455,'user_api','0004_userretirementpartnerreportingstatus','2019-02-06 08:06:38.846620'),(456,'user_authn','0001_data__add_login_service','2019-02-06 08:06:38.924862'),(457,'util','0001_initial','2019-02-06 08:06:39.401783'),(458,'util','0002_data__default_rate_limit_config','2019-02-06 08:06:39.459887'),(459,'verified_track_content','0002_verifiedtrackcohortedcourse_verified_cohort_name','2019-02-06 08:06:39.538104'),(460,'verified_track_content','0003_migrateverifiedtrackcohortssetting','2019-02-06 08:06:40.048232'),(461,'verify_student','0001_initial','2019-02-06 08:06:45.357816'),(462,'verify_student','0002_auto_20151124_1024','2019-02-06 08:06:45.516943'),(463,'verify_student','0003_auto_20151113_1443','2019-02-06 08:06:45.673513'),(464,'verify_student','0004_delete_historical_records','2019-02-06 08:06:45.835049'),(465,'verify_student','0005_remove_deprecated_models','2019-02-06 08:06:49.679210'),(466,'verify_student','0006_ssoverification','2019-02-06 08:06:49.790644'),(467,'verify_student','0007_idverificationaggregate','2019-02-06 08:06:49.891841'),(468,'verify_student','0008_populate_idverificationaggregate','2019-02-06 08:06:49.947020'),(469,'verify_student','0009_remove_id_verification_aggregate','2019-02-06 08:06:50.183257'),(470,'verify_student','0010_manualverification','2019-02-06 08:06:50.284386'),(471,'verify_student','0011_add_fields_to_sspv','2019-02-06 08:06:50.459982'),(472,'video_config','0001_initial','2019-02-06 08:06:50.654393'),(473,'video_config','0002_coursevideotranscriptenabledflag_videotranscriptenabledflag','2019-02-06 08:06:50.846809'),(474,'video_config','0003_transcriptmigrationsetting','2019-02-06 08:06:50.952242'),(475,'video_config','0004_transcriptmigrationsetting_command_run','2019-02-06 08:06:51.053615'),(476,'video_config','0005_auto_20180719_0752','2019-02-06 08:06:51.770192'),(477,'video_config','0006_videothumbnailetting_updatedcoursevideos','2019-02-06 08:06:51.998431'),(478,'video_config','0007_videothumbnailsetting_offset','2019-02-06 08:06:52.104225'),(479,'video_pipeline','0001_initial','2019-02-06 08:06:52.217246'),(480,'video_pipeline','0002_auto_20171114_0704','2019-02-06 08:06:52.423437'),(481,'video_pipeline','0003_coursevideouploadsenabledbydefault_videouploadsenabledbydefault','2019-02-06 08:06:52.652384'),(482,'waffle','0002_auto_20161201_0958','2019-02-06 08:06:52.731546'),(483,'waffle_utils','0001_initial','2019-02-06 08:06:52.859204'),(484,'wiki','0001_initial','2019-02-06 08:07:04.002394'),(485,'wiki','0002_remove_article_subscription','2019-02-06 08:07:04.852782'),(486,'wiki','0003_ip_address_conv','2019-02-06 08:07:06.546138'),(487,'wiki','0004_increase_slug_size','2019-02-06 08:07:06.749915'),(488,'wiki','0005_remove_attachments_and_images','2019-02-06 08:07:10.711449'),(489,'workflow','0001_initial','2019-02-06 08:07:10.929774'),(490,'workflow','0002_remove_django_extensions','2019-02-06 08:07:11.016177'),(491,'xapi','0001_initial','2019-02-06 08:07:11.530173'),(492,'xapi','0002_auto_20180726_0142','2019-02-06 08:07:11.853838'),(493,'xblock_django','0001_initial','2019-02-06 08:07:12.421573'),(494,'xblock_django','0002_auto_20160204_0809','2019-02-06 08:07:12.884088'),(495,'xblock_django','0003_add_new_config_models','2019-02-06 08:07:15.322827'),(496,'xblock_django','0004_delete_xblock_disable_config','2019-02-06 08:07:15.939861'),(497,'social_django','0002_add_related_name','2019-02-06 08:07:15.955501'),(498,'social_django','0003_alter_email_max_length','2019-02-06 08:07:15.960905'),(499,'social_django','0004_auto_20160423_0400','2019-02-06 08:07:15.967703'),(500,'social_django','0001_initial','2019-02-06 08:07:15.972077'),(501,'social_django','0005_auto_20160727_2333','2019-02-06 08:07:15.978019'),(502,'contentstore','0001_initial','2019-02-06 08:07:47.027361'),(503,'contentstore','0002_add_assets_page_flag','2019-02-06 08:07:48.064450'),(504,'contentstore','0003_remove_assets_page_flag','2019-02-06 08:07:48.989553'),(505,'course_creators','0001_initial','2019-02-06 08:07:49.658930'),(506,'tagging','0001_initial','2019-02-06 08:07:49.791763'),(507,'tagging','0002_auto_20170116_1541','2019-02-06 08:07:49.890533'),(508,'user_tasks','0001_initial','2019-02-06 08:07:50.803460'),(509,'user_tasks','0002_artifact_file_storage','2019-02-06 08:07:50.865286'),(510,'xblock_config','0001_initial','2019-02-06 08:07:51.079346'),(511,'xblock_config','0002_courseeditltifieldsenabledflag','2019-02-06 08:07:51.540299'),(512,'lti_provider','0001_initial','2019-02-20 13:02:12.609875'),(513,'lti_provider','0002_auto_20160325_0407','2019-02-20 13:02:12.673092'),(514,'lti_provider','0003_auto_20161118_1040','2019-02-20 13:02:12.735420'),(515,'content_type_gating','0005_auto_20190306_1547','2019-03-06 16:01:10.563542'),(516,'course_duration_limits','0005_auto_20190306_1546','2019-03-06 16:01:11.211966'),(517,'enterprise','0061_systemwideenterpriserole_systemwideenterpriseuserroleassignment','2019-03-08 15:47:46.856657'),(518,'enterprise','0062_add_system_wide_enterprise_roles','2019-03-08 15:47:46.906778'),(519,'content_type_gating','0006_auto_20190308_1447','2019-03-11 16:27:52.135257'),(520,'course_duration_limits','0006_auto_20190308_1447','2019-03-11 16:27:52.779284'),(521,'content_type_gating','0007_auto_20190311_1919','2019-03-12 16:11:54.043782'),(522,'course_duration_limits','0007_auto_20190311_1919','2019-03-12 16:11:56.790492'),(523,'announcements','0001_initial','2019-03-18 20:55:30.988286'),(524,'content_type_gating','0008_auto_20190313_1634','2019-03-18 20:55:31.415131'),(525,'course_duration_limits','0008_auto_20190313_1634','2019-03-18 20:55:32.064734'),(526,'enterprise','0063_systemwideenterpriserole_description','2019-03-21 18:42:16.699719'),(527,'enterprise','0064_enterprisefeaturerole_enterprisefeatureuserroleassignment','2019-03-28 19:30:12.392842'),(528,'enterprise','0065_add_enterprise_feature_roles','2019-03-28 19:30:12.443188'),(529,'enterprise','0066_add_system_wide_enterprise_operator_role','2019-03-28 19:30:12.488801'),(530,'student','0020_auto_20190227_2019','2019-04-01 21:47:42.163913'),(531,'certificates','0015_add_masters_choice','2019-04-05 14:57:27.206603'),(532,'enterprise','0067_add_role_based_access_control_switch','2019-04-08 20:45:27.538157'),(533,'program_enrollments','0001_initial','2019-04-10 20:26:00.692153'),(534,'program_enrollments','0002_historicalprogramcourseenrollment_programcourseenrollment','2019-04-18 16:08:03.137722'),(535,'third_party_auth','0023_auto_20190418_2033','2019-04-24 13:54:18.834044'),(536,'program_enrollments','0003_auto_20190424_1622','2019-04-24 16:35:05.844296'),(537,'courseware','0008_move_idde_to_edx_when','2019-04-25 14:14:41.176920'),(538,'edx_when','0001_initial','2019-04-25 14:14:42.645389'),(539,'edx_when','0002_auto_20190318_1736','2019-04-25 14:14:44.336320'),(540,'edx_when','0003_auto_20190402_1501','2019-04-25 14:14:46.294533'); /*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; diff --git a/docs/common_djangoapps.rst b/docs/common_djangoapps.rst index 071833e169..b10d78d87e 100644 --- a/docs/common_djangoapps.rst +++ b/docs/common_djangoapps.rst @@ -10,7 +10,6 @@ LMS and Studio. common/djangoapps/course_action_state/modules common/djangoapps/course_modes/modules common/djangoapps/database_fixups/modules - common/djangoapps/django_comment_common/modules common/djangoapps/edxmako/modules common/djangoapps/enrollment/modules common/djangoapps/entitlements/modules diff --git a/lms/djangoapps/ccx/migrations/0004_seed_forum_roles_in_ccx_courses.py b/lms/djangoapps/ccx/migrations/0004_seed_forum_roles_in_ccx_courses.py index 5e577bf406..fb947ad1e4 100644 --- a/lms/djangoapps/ccx/migrations/0004_seed_forum_roles_in_ccx_courses.py +++ b/lms/djangoapps/ccx/migrations/0004_seed_forum_roles_in_ccx_courses.py @@ -8,9 +8,9 @@ from courseware.courses import get_course_by_id from django.db import migrations from django.http import Http404 -from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_MODERATOR, \ +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_MODERATOR, \ FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_STUDENT -from django_comment_common.utils import STUDENT_ROLE_PERMISSIONS, MODERATOR_ROLE_PERMISSIONS, \ +from openedx.core.djangoapps.discussion_common.utils import STUDENT_ROLE_PERMISSIONS, MODERATOR_ROLE_PERMISSIONS, \ ADMINISTRATOR_ROLE_PERMISSIONS log = logging.getLogger("edx.ccx") @@ -26,8 +26,8 @@ def seed_forum_roles_for_existing_ccx(apps, schema_editor): """ CustomCourseForEdX = apps.get_model("ccx", "CustomCourseForEdX") - Role = apps.get_model("django_comment_common", "Role") - Permission = apps.get_model("django_comment_common", "Permission") + Role = apps.get_model("discussion_common", "Role") + Permission = apps.get_model("discussion_common", "Permission") db_alias = schema_editor.connection.alias # This will need to be changed if ccx gets moved out of the default db for some reason. if db_alias != 'default': @@ -76,7 +76,7 @@ class Migration(migrations.Migration): dependencies = [ ('ccx', '0003_add_master_course_staff_in_ccx'), - ('django_comment_common', '0002_forumsconfig'), + ('discussion_common', '0002_forumsconfig'), ] operations = [ diff --git a/lms/djangoapps/ccx/tests/test_views.py b/lms/djangoapps/ccx/tests/test_views.py index 877298b6b4..9858b7b8a5 100644 --- a/lms/djangoapps/ccx/tests/test_views.py +++ b/lms/djangoapps/ccx/tests/test_views.py @@ -23,9 +23,6 @@ from courseware.tabs import get_course_tab_list from courseware.tests.factories import StudentModuleFactory from courseware.tests.helpers import LoginEnrollmentTestCase from courseware.testutils import FieldOverrideTestMixin -from django_comment_client.utils import has_forum_access -from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR -from django_comment_common.utils import are_permissions_roles_seeded from edx_django_utils.cache import RequestCache from edxmako.shortcuts import render_to_response from lms.djangoapps.ccx.models import CustomCourseForEdX @@ -34,9 +31,12 @@ from lms.djangoapps.ccx.tests.factories import CcxFactory from lms.djangoapps.ccx.tests.utils import CcxTestCase, flatten from lms.djangoapps.ccx.utils import ccx_course, is_email from lms.djangoapps.ccx.views import get_date +from lms.djangoapps.discussion.django_comment_client.utils import has_forum_access from lms.djangoapps.grades.tasks import compute_all_grades_for_course from lms.djangoapps.instructor.access import allow_access, list_with_level from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_ADMINISTRATOR +from openedx.core.djangoapps.discussion_common.utils import are_permissions_roles_seeded from student.models import CourseEnrollment, CourseEnrollmentAllowed from student.roles import CourseCcxCoachRole, CourseInstructorRole, CourseStaffRole from student.tests.factories import AdminFactory, CourseEnrollmentFactory, UserFactory diff --git a/lms/djangoapps/ccx/views.py b/lms/djangoapps/ccx/views.py index 6dcab27536..daa6192f26 100644 --- a/lms/djangoapps/ccx/views.py +++ b/lms/djangoapps/ccx/views.py @@ -25,9 +25,6 @@ from opaque_keys.edx.keys import CourseKey from courseware.access import has_access from courseware.courses import get_course_by_id -from lms.djangoapps.courseware.field_overrides import disable_overrides -from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR, assign_role -from django_comment_common.utils import seed_permissions_roles from edxmako.shortcuts import render_to_response from lms.djangoapps.ccx.models import CustomCourseForEdX from lms.djangoapps.ccx.overrides import ( @@ -48,9 +45,12 @@ from lms.djangoapps.ccx.utils import ( get_enrollment_action_and_identifiers, parse_date, ) +from lms.djangoapps.courseware.field_overrides import disable_overrides from lms.djangoapps.grades.course_grade_factory import CourseGradeFactory from lms.djangoapps.instructor.enrollment import enroll_email, get_email_params from lms.djangoapps.instructor.views.gradebook_api import get_grade_book_page +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_ADMINISTRATOR, assign_role +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from student.models import CourseEnrollment from student.roles import CourseCcxCoachRole from xmodule.modulestore.django import SignalHandler diff --git a/lms/djangoapps/courseware/tests/test_discussion_xblock.py b/lms/djangoapps/courseware/tests/test_discussion_xblock.py index 69dad92cd6..3016d2b76a 100644 --- a/lms/djangoapps/courseware/tests/test_discussion_xblock.py +++ b/lms/djangoapps/courseware/tests/test_discussion_xblock.py @@ -213,7 +213,10 @@ class TestTemplates(TestDiscussionXBlock): Test for has_permission method. """ permission_canary = object() - with mock.patch('django_comment_client.permissions.has_permission', return_value=permission_canary) as has_perm: + with mock.patch( + 'lms.djangoapps.discussion.django_comment_client.permissions.has_permission', + return_value=permission_canary, + ) as has_perm: actual_permission = self.block.has_permission("test_permission") self.assertEqual(actual_permission, permission_canary) has_perm.assert_called_once_with(self.django_user_canary, 'test_permission', 'test_course') diff --git a/lms/djangoapps/courseware/tests/test_self_paced_overrides.py b/lms/djangoapps/courseware/tests/test_self_paced_overrides.py index 27bc610dbb..e2b30ff009 100644 --- a/lms/djangoapps/courseware/tests/test_self_paced_overrides.py +++ b/lms/djangoapps/courseware/tests/test_self_paced_overrides.py @@ -10,7 +10,7 @@ from courseware.access import has_access from courseware.tests.factories import BetaTesterFactory from lms.djangoapps.ccx.tests.test_overrides import inject_field_overrides from lms.djangoapps.courseware.field_overrides import OverrideFieldData, OverrideModulestoreFieldData -from lms.djangoapps.django_comment_client.utils import get_accessible_discussion_xblocks +from lms.djangoapps.discussion.django_comment_client.utils import get_accessible_discussion_xblocks from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory diff --git a/lms/djangoapps/discussion/README.rst b/lms/djangoapps/discussion/README.rst index 55f4d317b2..e3f53c8a5e 100644 --- a/lms/djangoapps/discussion/README.rst +++ b/lms/djangoapps/discussion/README.rst @@ -8,13 +8,8 @@ Direction: Move and Extract =========================== Discussions related functionality is scattered across a number of places and should be better consolidated. Today we have: -* ``common/djangoapps/django_comment_common`` * ``lms/djangoapps/discussion`` -* ``lms/djangoapps/discussion_api`` -* ``lms/djangoapps/django_comment_client`` -* ``lms/djangoapps/notification_prefs`` -* ``lms/djangoapps/notifier_api`` -* ``lms/lib/comment_client`` +* ``openedx/core/djangoapps/discussion_common`` * ``openedx/core/lib/xblock_builtin/xblock_discussion`` Ideally, what we want in the long term is for all of this extracted into a new repository that holds the code for both the inline discussion XBlock as well as all the Django apps. Use of the notifier API should be replaced with edx-ace. diff --git a/lms/djangoapps/discussion/apps.py b/lms/djangoapps/discussion/apps.py index 43f7d9d1f6..2a0c2a2db6 100644 --- a/lms/djangoapps/discussion/apps.py +++ b/lms/djangoapps/discussion/apps.py @@ -12,7 +12,7 @@ from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType, class DiscussionConfig(AppConfig): """ - Application Configuration for Grades. + Application Configuration for Discussion. """ name = u'lms.djangoapps.discussion' diff --git a/common/djangoapps/django_comment_common/README.rst b/lms/djangoapps/discussion/django_comment_client/README.rst similarity index 100% rename from common/djangoapps/django_comment_common/README.rst rename to lms/djangoapps/discussion/django_comment_client/README.rst diff --git a/common/djangoapps/django_comment_common/__init__.py b/lms/djangoapps/discussion/django_comment_client/__init__.py similarity index 100% rename from common/djangoapps/django_comment_common/__init__.py rename to lms/djangoapps/discussion/django_comment_client/__init__.py diff --git a/lms/djangoapps/discussion/django_comment_client/base/__init__.py b/lms/djangoapps/discussion/django_comment_client/base/__init__.py new file mode 100644 index 0000000000..46c35edb1d --- /dev/null +++ b/lms/djangoapps/discussion/django_comment_client/base/__init__.py @@ -0,0 +1,3 @@ +# pylint: disable=missing-docstring,relative-import +# This import registers the ForumThreadViewedEventTransformer +import event_transformers diff --git a/lms/djangoapps/django_comment_client/base/event_transformers.py b/lms/djangoapps/discussion/django_comment_client/base/event_transformers.py similarity index 94% rename from lms/djangoapps/django_comment_client/base/event_transformers.py rename to lms/djangoapps/discussion/django_comment_client/base/event_transformers.py index 1441ca9a7b..4f90f198ef 100644 --- a/lms/djangoapps/django_comment_client/base/event_transformers.py +++ b/lms/djangoapps/discussion/django_comment_client/base/event_transformers.py @@ -1,3 +1,4 @@ +# pylint: skip-file """ Transformers for Discussion-related events. """ @@ -8,9 +9,9 @@ from eventtracking.processors.exceptions import EventEmissionExit from opaque_keys import InvalidKeyError from opaque_keys.edx.locator import CourseLocator -from django_comment_client.base.views import add_truncated_title_to_event_data -from django_comment_client.permissions import get_team -from django_comment_client.utils import get_cached_discussion_id_map_by_course_id +from lms.djangoapps.discussion.django_comment_client.base.views import add_truncated_title_to_event_data +from lms.djangoapps.discussion.django_comment_client.permissions import get_team +from lms.djangoapps.discussion.django_comment_client.utils import get_cached_discussion_id_map_by_course_id from track.transformers import EventTransformer, EventTransformerRegistry from track.views.segmentio import ( BI_SCREEN_VIEWED_EVENT_NAME, diff --git a/lms/djangoapps/django_comment_client/base/tests.py b/lms/djangoapps/discussion/django_comment_client/base/tests.py similarity index 96% rename from lms/djangoapps/django_comment_client/base/tests.py rename to lms/djangoapps/discussion/django_comment_client/base/tests.py index 04eff93651..eb5964f169 100644 --- a/lms/djangoapps/django_comment_client/base/tests.py +++ b/lms/djangoapps/discussion/django_comment_client/base/tests.py @@ -1,3 +1,4 @@ +# pylint: skip-file # -*- coding: utf-8 -*- """Tests for django comment client views.""" import json @@ -18,25 +19,27 @@ from six import text_type from common.test.utils import MockSignalHandlerMixin, disable_signal from course_modes.models import CourseMode from course_modes.tests.factories import CourseModeFactory -from django_comment_client.base import views -from django_comment_client.tests.group_id import ( +from lms.djangoapps.discussion.django_comment_client.base import views +from lms.djangoapps.discussion.django_comment_client.tests.group_id import ( CohortedTopicGroupIdTestMixin, GroupIdAssertionMixin, NonCohortedTopicGroupIdTestMixin ) -from django_comment_client.tests.unicode import UnicodeTestMixin -from django_comment_client.tests.utils import CohortedTestCase, ForumsEnableMixin -from django_comment_common.models import ( +from lms.djangoapps.discussion.django_comment_client.tests.unicode import UnicodeTestMixin +from lms.djangoapps.discussion.django_comment_client.tests.utils import CohortedTestCase, ForumsEnableMixin +from openedx.core.djangoapps.discussion_common.comment_client import Thread +from openedx.core.djangoapps.discussion_common.models import ( assign_role, CourseDiscussionSettings, FORUM_ROLE_STUDENT, Role ) -from django_comment_common.utils import ThreadContext, seed_permissions_roles, set_course_discussion_settings from lms.djangoapps.teams.tests.factories import CourseTeamFactory, CourseTeamMembershipFactory -from lms.lib.comment_client import Thread from openedx.core.djangoapps.course_groups.cohorts import set_course_cohorted from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory +from openedx.core.djangoapps.discussion_common.utils import ( + ThreadContext, seed_permissions_roles, set_course_discussion_settings +) from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES from student.roles import CourseStaffRole, UserBasedRole from student.tests.factories import CourseAccessRoleFactory, CourseEnrollmentFactory, UserFactory @@ -72,7 +75,7 @@ class MockRequestSetupMixin(object): mock_request.return_value = self._create_response_mock(data) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class CreateThreadGroupIdTestCase( MockRequestSetupMixin, CohortedTestCase, @@ -107,7 +110,7 @@ class CreateThreadGroupIdTestCase( self._assert_json_response_contains_group_info(response) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) @disable_signal(views, 'thread_edited') @disable_signal(views, 'thread_voted') @disable_signal(views, 'thread_deleted') @@ -365,7 +368,7 @@ class ViewsTestCaseMixin(object): @ddt.ddt -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) @disable_signal(views, 'thread_created') @disable_signal(views, 'thread_edited') class ViewsQueryCountTestCase( @@ -418,7 +421,7 @@ class ViewsQueryCountTestCase( @ddt.ddt -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class ViewsTestCase( ForumsEnableMixin, UrlResetMixin, @@ -641,7 +644,10 @@ class ViewsTestCase( with self.assert_discussion_signals('thread_edited'): self.update_thread_helper(mock_request) - @patch('django_comment_client.utils.get_discussion_categories_ids', return_value=["test_commentable"]) + @patch( + 'lms.djangoapps.discussion.django_comment_client.utils.get_discussion_categories_ids', + return_value=["test_commentable"], + ) def test_update_thread_wrong_commentable_id(self, mock_get_discussion_id_map, mock_request): self._test_request_error( "update_thread", @@ -1062,7 +1068,7 @@ class ViewsTestCase( self.assertEqual(response.status_code, 200) -@patch("lms.lib.comment_client.utils.requests.request", autospec=True) +@patch("openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request", autospec=True) @disable_signal(views, 'comment_endorsed') class ViewPermissionsTestCase(ForumsEnableMixin, UrlResetMixin, SharedModuleStoreTestCase, MockRequestSetupMixin): @@ -1191,7 +1197,7 @@ class CreateThreadUnicodeTestCase( cls.student = UserFactory.create() CourseEnrollmentFactory(user=cls.student, course_id=cls.course.id) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request,): """ Test to make sure unicode data in a thread doesn't break it. @@ -1233,8 +1239,11 @@ class UpdateThreadUnicodeTestCase( cls.student = UserFactory.create() CourseEnrollmentFactory(user=cls.student, course_id=cls.course.id) - @patch('django_comment_client.utils.get_discussion_categories_ids', return_value=["test_commentable"]) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch( + 'lms.djangoapps.discussion.django_comment_client.utils.get_discussion_categories_ids', + return_value=["test_commentable"], + ) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request, mock_get_discussion_id_map): self._set_mock_request_data(mock_request, { "user_id": str(self.student.id), @@ -1275,7 +1284,7 @@ class CreateCommentUnicodeTestCase( cls.student = UserFactory.create() CourseEnrollmentFactory(user=cls.student, course_id=cls.course.id) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): commentable_id = "non_team_dummy_id" self._set_mock_request_data(mock_request, { @@ -1322,7 +1331,7 @@ class UpdateCommentUnicodeTestCase( cls.student = UserFactory.create() CourseEnrollmentFactory(user=cls.student, course_id=cls.course.id) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): self._set_mock_request_data(mock_request, { "user_id": str(self.student.id), @@ -1362,7 +1371,7 @@ class CreateSubCommentUnicodeTestCase( cls.student = UserFactory.create() CourseEnrollmentFactory(user=cls.student, course_id=cls.course.id) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): """ Create a comment with unicode in it. @@ -1390,7 +1399,7 @@ class CreateSubCommentUnicodeTestCase( @ddt.ddt -@patch("lms.lib.comment_client.utils.requests.request", autospec=True) +@patch("openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request", autospec=True) @disable_signal(views, 'thread_voted') @disable_signal(views, 'thread_edited') @disable_signal(views, 'comment_created') @@ -1757,7 +1766,7 @@ class ForumEventTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockReque CourseAccessRoleFactory(course_id=cls.course.id, user=cls.student, role='Wizard') @patch('eventtracking.tracker.emit') - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_thread_created_event(self, __, mock_emit): request = RequestFactory().post( "dummy_url", { @@ -1786,7 +1795,7 @@ class ForumEventTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockReque self.assertEquals(event['anonymous_to_peers'], False) @patch('eventtracking.tracker.emit') - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_response_event(self, mock_request, mock_emit): """ Check to make sure an event is fired when a user responds to a thread. @@ -1812,7 +1821,7 @@ class ForumEventTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockReque self.assertEqual(event['options']['followed'], True) @patch('eventtracking.tracker.emit') - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_comment_event(self, mock_request, mock_emit): """ Ensure an event is fired when someone comments on a response. @@ -1839,7 +1848,7 @@ class ForumEventTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockReque self.assertEqual(event['options']['followed'], False) @patch('eventtracking.tracker.emit') - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) @ddt.data(( 'create_thread', 'edx.forum.thread.created', { @@ -1891,7 +1900,7 @@ class ForumEventTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockReque ) @ddt.unpack @patch('eventtracking.tracker.emit') - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_thread_voted_event(self, view_name, obj_id_name, obj_type, mock_request, mock_emit): undo = view_name.startswith('undo') @@ -1953,7 +1962,7 @@ class UsersEndpointTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockRe request.view_name = "users" return views.users(request, course_id=text_type(course_id)) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_finds_exact_match(self, mock_request): self.set_post_counts(mock_request) response = self.make_request(username="other") @@ -1963,7 +1972,7 @@ class UsersEndpointTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockRe [{"id": self.other_user.id, "username": self.other_user.username}] ) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_finds_no_match(self, mock_request): self.set_post_counts(mock_request) response = self.make_request(username="othor") @@ -2000,7 +2009,7 @@ class UsersEndpointTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, MockRe self.assertIn("errors", content) self.assertNotIn("users", content) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_requires_matched_user_has_forum_content(self, mock_request): self.set_post_counts(mock_request, 0, 0) response = self.make_request(username="other") diff --git a/lms/djangoapps/django_comment_client/base/urls.py b/lms/djangoapps/discussion/django_comment_client/base/urls.py similarity index 97% rename from lms/djangoapps/django_comment_client/base/urls.py rename to lms/djangoapps/discussion/django_comment_client/base/urls.py index 413a0cb8e2..e65be7a409 100644 --- a/lms/djangoapps/django_comment_client/base/urls.py +++ b/lms/djangoapps/discussion/django_comment_client/base/urls.py @@ -3,7 +3,7 @@ Base urls for the django_comment_client. """ from django.conf.urls import url -from django_comment_client.base import views +from lms.djangoapps.discussion.django_comment_client.base import views urlpatterns = [ url(r'^upload$', views.upload, name='upload'), diff --git a/lms/djangoapps/django_comment_client/base/views.py b/lms/djangoapps/discussion/django_comment_client/base/views.py similarity index 97% rename from lms/djangoapps/django_comment_client/base/views.py rename to lms/djangoapps/discussion/django_comment_client/base/views.py index bcb26950b1..20d553f7ec 100644 --- a/lms/djangoapps/django_comment_client/base/views.py +++ b/lms/djangoapps/discussion/django_comment_client/base/views.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring,unused-argument """Views for discussion forums.""" from __future__ import print_function @@ -20,12 +21,14 @@ from django.views.decorators.http import require_GET, require_POST from opaque_keys.edx.keys import CourseKey from six import text_type -import django_comment_client.settings as cc_settings -import lms.lib.comment_client as cc from courseware.access import has_access from courseware.courses import get_course_by_id, get_course_overview_with_access, get_course_with_access -from django_comment_client.permissions import check_permissions_by_view, get_team, has_permission -from django_comment_client.utils import ( +from lms.djangoapps.courseware.exceptions import CourseAccessRedirect +from lms.djangoapps.discussion.django_comment_client.permissions import ( + check_permissions_by_view, get_team, has_permission, +) +import lms.djangoapps.discussion.django_comment_client.settings as cc_settings +from lms.djangoapps.discussion.django_comment_client.utils import ( JsonError, JsonResponse, add_courseware_context, @@ -38,7 +41,8 @@ from django_comment_client.utils import ( is_comment_too_deep, prepare_content ) -from django_comment_common.signals import ( +import openedx.core.djangoapps.discussion_common.comment_client as cc +from openedx.core.djangoapps.discussion_common.signals import ( comment_created, comment_deleted, comment_edited, @@ -51,9 +55,8 @@ from django_comment_common.signals import ( thread_followed, thread_unfollowed, ) -from django_comment_common.utils import ThreadContext +from openedx.core.djangoapps.discussion_common.utils import ThreadContext import eventtracking -from lms.djangoapps.courseware.exceptions import CourseAccessRedirect from util.file import store_uploaded_file log = logging.getLogger(__name__) @@ -96,10 +99,7 @@ def track_created_event(request, event_name, course, obj, data): """ Send analytics event for a newly created thread, response or comment. """ - if len(obj.body) > TRACKING_MAX_FORUM_BODY: - data['truncated'] = True - else: - data['truncated'] = False + data['truncated'] = len(obj.body) > TRACKING_MAX_FORUM_BODY data['body'] = obj.body[:TRACKING_MAX_FORUM_BODY] track_forum_event(request, event_name, course, obj, data) diff --git a/lms/djangoapps/django_comment_client/constants.py b/lms/djangoapps/discussion/django_comment_client/constants.py similarity index 100% rename from lms/djangoapps/django_comment_client/constants.py rename to lms/djangoapps/discussion/django_comment_client/constants.py diff --git a/lms/djangoapps/django_comment_client/middleware.py b/lms/djangoapps/discussion/django_comment_client/middleware.py similarity index 79% rename from lms/djangoapps/django_comment_client/middleware.py rename to lms/djangoapps/discussion/django_comment_client/middleware.py index 84d033566e..31e66b3c1f 100644 --- a/lms/djangoapps/django_comment_client/middleware.py +++ b/lms/djangoapps/discussion/django_comment_client/middleware.py @@ -1,10 +1,11 @@ +# pylint: disable=missing-docstring import json import logging from six import text_type -from django_comment_client.utils import JsonError -from lms.lib.comment_client import CommentClientRequestError +from lms.djangoapps.discussion.django_comment_client.utils import JsonError +from openedx.core.djangoapps.discussion_common.comment_client import CommentClientRequestError log = logging.getLogger(__name__) diff --git a/common/djangoapps/django_comment_common/migrations/__init__.py b/lms/djangoapps/discussion/django_comment_client/migrations/__init__.py similarity index 100% rename from common/djangoapps/django_comment_common/migrations/__init__.py rename to lms/djangoapps/discussion/django_comment_client/migrations/__init__.py diff --git a/lms/djangoapps/discussion/django_comment_client/models.py b/lms/djangoapps/discussion/django_comment_client/models.py new file mode 100644 index 0000000000..714b76f9f9 --- /dev/null +++ b/lms/djangoapps/discussion/django_comment_client/models.py @@ -0,0 +1 @@ +# This file is intentionally blank. It has been moved to openedx/core/djangoapps/discussion_common diff --git a/lms/djangoapps/django_comment_client/permissions.py b/lms/djangoapps/discussion/django_comment_client/permissions.py similarity index 96% rename from lms/djangoapps/django_comment_client/permissions.py rename to lms/djangoapps/discussion/django_comment_client/permissions.py index cc187880e2..6cd6d0f8bf 100644 --- a/lms/djangoapps/django_comment_client/permissions.py +++ b/lms/djangoapps/discussion/django_comment_client/permissions.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring """ Module for checking permissions with the comment_client backend """ @@ -8,10 +9,12 @@ from types import NoneType from edx_django_utils.cache import DEFAULT_REQUEST_CACHE from opaque_keys.edx.keys import CourseKey -from django_comment_common.models import CourseDiscussionSettings, all_permissions_for_user_in_course -from django_comment_common.utils import get_course_discussion_settings from lms.djangoapps.teams.models import CourseTeam -from lms.lib.comment_client import Thread +from openedx.core.djangoapps.discussion_common.comment_client import Thread +from openedx.core.djangoapps.discussion_common.models import ( + CourseDiscussionSettings, all_permissions_for_user_in_course, +) +from openedx.core.djangoapps.discussion_common.utils import get_course_discussion_settings from openedx.core.lib.cache_utils import request_cached diff --git a/lms/djangoapps/django_comment_client/settings.py b/lms/djangoapps/discussion/django_comment_client/settings.py similarity index 69% rename from lms/djangoapps/django_comment_client/settings.py rename to lms/djangoapps/discussion/django_comment_client/settings.py index b9a8d18081..b812c35629 100644 --- a/lms/djangoapps/django_comment_client/settings.py +++ b/lms/djangoapps/discussion/django_comment_client/settings.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring from django.conf import settings MAX_COMMENT_DEPTH = None @@ -7,4 +8,7 @@ ALLOWED_UPLOAD_FILE_TYPES = ('.jpg', '.jpeg', '.gif', '.bmp', '.png', '.tiff') if hasattr(settings, 'DISCUSSION_SETTINGS'): MAX_COMMENT_DEPTH = settings.DISCUSSION_SETTINGS.get('MAX_COMMENT_DEPTH') MAX_UPLOAD_FILE_SIZE = settings.DISCUSSION_SETTINGS.get('MAX_UPLOAD_FILE_SIZE') or MAX_UPLOAD_FILE_SIZE - ALLOWED_UPLOAD_FILE_TYPES = settings.DISCUSSION_SETTINGS.get('ALLOWED_UPLOAD_FILE_TYPES') or ALLOWED_UPLOAD_FILE_TYPES + ALLOWED_UPLOAD_FILE_TYPES = ( + settings.DISCUSSION_SETTINGS.get('ALLOWED_UPLOAD_FILE_TYPES') or + ALLOWED_UPLOAD_FILE_TYPES + ) diff --git a/lms/djangoapps/discussion_api/__init__.py b/lms/djangoapps/discussion/django_comment_client/tests/__init__.py similarity index 100% rename from lms/djangoapps/discussion_api/__init__.py rename to lms/djangoapps/discussion/django_comment_client/tests/__init__.py diff --git a/lms/djangoapps/django_comment_client/tests/factories.py b/lms/djangoapps/discussion/django_comment_client/tests/factories.py similarity index 73% rename from lms/djangoapps/django_comment_client/tests/factories.py rename to lms/djangoapps/discussion/django_comment_client/tests/factories.py index 5a22db6be2..7cccc6fbb3 100644 --- a/lms/djangoapps/django_comment_client/tests/factories.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/factories.py @@ -1,6 +1,7 @@ +# pylint: disable=missing-docstring from factory.django import DjangoModelFactory -from django_comment_common.models import Permission, Role +from openedx.core.djangoapps.discussion_common.models import Permission, Role class RoleFactory(DjangoModelFactory): diff --git a/lms/djangoapps/django_comment_client/tests/group_id.py b/lms/djangoapps/discussion/django_comment_client/tests/group_id.py similarity index 97% rename from lms/djangoapps/django_comment_client/tests/group_id.py rename to lms/djangoapps/discussion/django_comment_client/tests/group_id.py index a0ce2710f8..2bce585eff 100644 --- a/lms/djangoapps/django_comment_client/tests/group_id.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/group_id.py @@ -1,11 +1,12 @@ +# pylint: disable=missing-docstring import json import re from course_modes.models import CourseMode from course_modes.tests.factories import CourseModeFactory -from django_comment_common.models import CourseDiscussionSettings -from django_comment_common.utils import set_course_discussion_settings from lms.djangoapps.teams.tests.factories import CourseTeamFactory +from openedx.core.djangoapps.discussion_common.models import CourseDiscussionSettings +from openedx.core.djangoapps.discussion_common.utils import set_course_discussion_settings class GroupIdAssertionMixin(object): diff --git a/lms/djangoapps/discussion_api/tests/__init__.py b/lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/__init__.py similarity index 100% rename from lms/djangoapps/discussion_api/tests/__init__.py rename to lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/__init__.py diff --git a/lms/djangoapps/django_comment_client/tests/mock_cs_server/mock_cs_server.py b/lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/mock_cs_server.py similarity index 99% rename from lms/djangoapps/django_comment_client/tests/mock_cs_server/mock_cs_server.py rename to lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/mock_cs_server.py index e482e0acc1..6061d32094 100644 --- a/lms/djangoapps/django_comment_client/tests/mock_cs_server/mock_cs_server.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/mock_cs_server.py @@ -1,3 +1,4 @@ +# pylint: skip-file import json from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer from logging import getLogger diff --git a/lms/djangoapps/django_comment_client/tests/mock_cs_server/test_mock_cs_server.py b/lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/test_mock_cs_server.py similarity index 93% rename from lms/djangoapps/django_comment_client/tests/mock_cs_server/test_mock_cs_server.py rename to lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/test_mock_cs_server.py index 11cdf5620d..98a0bdaf7a 100644 --- a/lms/djangoapps/django_comment_client/tests/mock_cs_server/test_mock_cs_server.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/mock_cs_server/test_mock_cs_server.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring import json import threading import unittest @@ -5,7 +6,7 @@ import urllib2 import pytest -from django_comment_client.tests.mock_cs_server.mock_cs_server import MockCommentServiceServer +from lms.djangoapps.discussion.django_comment_client.tests.mock_cs_server.mock_cs_server import MockCommentServiceServer class MockCommentServiceServerTest(unittest.TestCase): diff --git a/lms/djangoapps/django_comment_client/tests/test.mustache b/lms/djangoapps/discussion/django_comment_client/tests/test.mustache similarity index 100% rename from lms/djangoapps/django_comment_client/tests/test.mustache rename to lms/djangoapps/discussion/django_comment_client/tests/test.mustache diff --git a/lms/djangoapps/django_comment_client/tests/test_middleware.py b/lms/djangoapps/discussion/django_comment_client/tests/test_middleware.py similarity index 76% rename from lms/djangoapps/django_comment_client/tests/test_middleware.py rename to lms/djangoapps/discussion/django_comment_client/tests/test_middleware.py index c6346f95b5..bdba0269a8 100644 --- a/lms/djangoapps/django_comment_client/tests/test_middleware.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/test_middleware.py @@ -1,11 +1,12 @@ +# pylint: disable=missing-docstring import json import django.http from django.test import TestCase from six import text_type -import django_comment_client.middleware as middleware -import lms.lib.comment_client +import lms.djangoapps.discussion.django_comment_client.middleware as middleware +import openedx.core.djangoapps.discussion_common.comment_client as comment_client class AjaxExceptionTestCase(TestCase): @@ -15,9 +16,9 @@ class AjaxExceptionTestCase(TestCase): self.a = middleware.AjaxExceptionMiddleware() self.request1 = django.http.HttpRequest() self.request0 = django.http.HttpRequest() - self.exception1 = lms.lib.comment_client.CommentClientRequestError('{}', 401) - self.exception2 = lms.lib.comment_client.CommentClientRequestError('Foo!', 404) - self.exception0 = lms.lib.comment_client.CommentClient500Error("Holy crap the server broke!") + self.exception1 = comment_client.CommentClientRequestError('{}', 401) + self.exception2 = comment_client.CommentClientRequestError('Foo!', 404) + self.exception0 = comment_client.CommentClient500Error("Holy crap the server broke!") self.request1.META['HTTP_X_REQUESTED_WITH'] = "XMLHttpRequest" self.request0.META['HTTP_X_REQUESTED_WITH'] = "SHADOWFAX" diff --git a/lms/djangoapps/django_comment_client/tests/test_models.py b/lms/djangoapps/discussion/django_comment_client/tests/test_models.py similarity index 97% rename from lms/djangoapps/django_comment_client/tests/test_models.py rename to lms/djangoapps/discussion/django_comment_client/tests/test_models.py index e7dbe05ffd..39f810dc60 100644 --- a/lms/djangoapps/django_comment_client/tests/test_models.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/test_models.py @@ -4,7 +4,7 @@ Tests for the django comment client integration models from django.test.testcases import TestCase from opaque_keys.edx.keys import CourseKey -import django_comment_common.models as models +import openedx.core.djangoapps.discussion_common.models as models from xmodule.modulestore.tests.django_utils import TEST_DATA_MIXED_MODULESTORE, ModuleStoreTestCase from xmodule.modulestore.tests.factories import ToyCourseFactory diff --git a/lms/djangoapps/django_comment_client/tests/test_utils.py b/lms/djangoapps/discussion/django_comment_client/tests/test_utils.py similarity index 98% rename from lms/djangoapps/django_comment_client/tests/test_utils.py rename to lms/djangoapps/discussion/django_comment_client/tests/test_utils.py index 430ce33e64..fb5da8b64b 100644 --- a/lms/djangoapps/django_comment_client/tests/test_utils.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/test_utils.py @@ -1,3 +1,4 @@ +# pylint: skip-file # -*- coding: utf-8 -*- import datetime import json @@ -12,31 +13,31 @@ from mock import Mock, patch from pytz import UTC from six import text_type -import django_comment_client.utils as utils from course_modes.models import CourseMode from course_modes.tests.factories import CourseModeFactory from courseware.tabs import get_course_tab_list from courseware.tests.factories import InstructorFactory -from django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY -from django_comment_client.tests.factories import RoleFactory -from django_comment_client.tests.unicode import UnicodeTestMixin -from django_comment_client.tests.utils import config_course_discussions, topic_name_to_id -from django_comment_common.models import ( +from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY +from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory +from lms.djangoapps.discussion.django_comment_client.tests.unicode import UnicodeTestMixin +from lms.djangoapps.discussion.django_comment_client.tests.utils import config_course_discussions, topic_name_to_id +import lms.djangoapps.discussion.django_comment_client.utils as utils +from lms.djangoapps.teams.tests.factories import CourseTeamFactory +from openedx.core.djangoapps.course_groups import cohorts +from openedx.core.djangoapps.course_groups.cohorts import set_course_cohorted +from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory, config_course_cohorts +from openedx.core.djangoapps.discussion_common.comment_client.utils import CommentClientMaintenanceError, perform_request +from openedx.core.djangoapps.discussion_common.models import ( CourseDiscussionSettings, ForumsConfig, assign_role, DiscussionsIdMapping, ) -from django_comment_common.utils import ( +from openedx.core.djangoapps.discussion_common.utils import ( get_course_discussion_settings, seed_permissions_roles, set_course_discussion_settings ) -from lms.djangoapps.teams.tests.factories import CourseTeamFactory -from lms.lib.comment_client.utils import CommentClientMaintenanceError, perform_request -from openedx.core.djangoapps.course_groups import cohorts -from openedx.core.djangoapps.course_groups.cohorts import set_course_cohorted -from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory, config_course_cohorts from openedx.core.djangoapps.util.testing import ContentGroupTestCase from student.roles import CourseStaffRole from student.tests.factories import AdminFactory, CourseEnrollmentFactory, UserFactory @@ -1592,7 +1593,9 @@ class PermissionsTestCase(ModuleStoreTestCase): user = mock.Mock() user.id = 1 - with mock.patch('django_comment_client.utils.check_permissions_by_view') as check_perm: + with mock.patch( + 'lms.djangoapps.discussion.django_comment_client.utils.check_permissions_by_view' + ) as check_perm: check_perm.return_value = True self.assertEqual(utils.get_ability(None, content, user), { 'editable': True, @@ -1620,7 +1623,9 @@ class PermissionsTestCase(ModuleStoreTestCase): """ content = {'user_id': '1', 'type': 'thread'} - with mock.patch('django_comment_client.utils.check_permissions_by_view') as check_perm: + with mock.patch( + 'lms.djangoapps.discussion.django_comment_client.utils.check_permissions_by_view' + ) as check_perm: # check_permissions_by_view returns false because user is not enrolled in the course. check_perm.return_value = False global_staff = UserFactory(username='global_staff', email='global_staff@edx.org', is_staff=True) @@ -1721,7 +1726,10 @@ class GroupModeratorPermissionsTestCase(ModuleStoreTestCase): # Give group moderator permissions to group_moderator assign_role(self.course.id, self.group_moderator, 'Group Moderator') - @mock.patch('django_comment_client.permissions._check_condition', side_effect=_check_condition) + @mock.patch( + 'lms.djangoapps.discussion.django_comment_client.permissions._check_condition', + side_effect=_check_condition, + ) def test_not_divided(self, check_condition_function): """ Group moderator should not have moderator permissions if the discussions are not divided. @@ -1754,7 +1762,10 @@ class GroupModeratorPermissionsTestCase(ModuleStoreTestCase): 'can_report': True }) - @mock.patch('django_comment_client.permissions._check_condition', side_effect=_check_condition) + @mock.patch( + 'lms.djangoapps.discussion.django_comment_client.permissions._check_condition', + side_effect=_check_condition, + ) def test_divided_within_group(self, check_condition_function): """ Group moderator should have moderator permissions within their group if the discussions are divided. @@ -1783,7 +1794,10 @@ class GroupModeratorPermissionsTestCase(ModuleStoreTestCase): 'can_report': True }) - @mock.patch('django_comment_client.permissions._check_condition', side_effect=_check_condition) + @mock.patch( + 'lms.djangoapps.discussion.django_comment_client.permissions._check_condition', + side_effect=_check_condition, + ) def test_divided_outside_group(self, check_condition_function): """ Group moderator should not have moderator permissions outside of their group. diff --git a/lms/djangoapps/django_comment_client/tests/unicode.py b/lms/djangoapps/discussion/django_comment_client/tests/unicode.py similarity index 79% rename from lms/djangoapps/django_comment_client/tests/unicode.py rename to lms/djangoapps/discussion/django_comment_client/tests/unicode.py index 700d31be15..a750b6ba0b 100644 --- a/lms/djangoapps/django_comment_client/tests/unicode.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/unicode.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring # coding=utf-8 @@ -15,7 +16,9 @@ class UnicodeTestMixin(object): self._test_unicode_data(u"𝕋𝕙𝕚𝕤 𝕡𝕠𝕤𝕥 𝕔𝕠𝕟𝕥𝕒𝕚𝕟𝕤 𝕔𝕙𝕒𝕣𝕒𝕔𝕥𝕖𝕣𝕤 𝕠𝕦𝕥𝕤𝕚𝕕𝕖 𝕥𝕙𝕖 𝔹𝕄ℙ") def test_special_chars(self): - self._test_unicode_data(u"\" This , post > contains < delimiter ] and [ other } special { characters ; that & may ' break things") + self._test_unicode_data( + u"\" This , post > contains < delimiter ] and [ other } special { characters ; that & may ' break things" + ) def test_string_interp(self): self._test_unicode_data(u"This post contains %s string interpolation #{syntax}") diff --git a/lms/djangoapps/django_comment_client/tests/utils.py b/lms/djangoapps/discussion/django_comment_client/tests/utils.py similarity index 94% rename from lms/djangoapps/django_comment_client/tests/utils.py rename to lms/djangoapps/discussion/django_comment_client/tests/utils.py index db652fe44c..bfe2b17a71 100644 --- a/lms/djangoapps/django_comment_client/tests/utils.py +++ b/lms/djangoapps/discussion/django_comment_client/tests/utils.py @@ -3,8 +3,10 @@ Utilities for tests within the django_comment_client module. """ from mock import patch -from django_comment_common.models import ForumsConfig, Role -from django_comment_common.utils import CourseDiscussionSettings, seed_permissions_roles, set_course_discussion_settings +from openedx.core.djangoapps.discussion_common.models import ForumsConfig, Role +from openedx.core.djangoapps.discussion_common.utils import ( + CourseDiscussionSettings, seed_permissions_roles, set_course_discussion_settings, +) from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory from student.tests.factories import CourseEnrollmentFactory, UserFactory from util.testing import UrlResetMixin diff --git a/lms/djangoapps/django_comment_client/urls.py b/lms/djangoapps/discussion/django_comment_client/urls.py similarity index 55% rename from lms/djangoapps/django_comment_client/urls.py rename to lms/djangoapps/discussion/django_comment_client/urls.py index 71326ba227..f51def9cc0 100644 --- a/lms/djangoapps/django_comment_client/urls.py +++ b/lms/djangoapps/discussion/django_comment_client/urls.py @@ -4,5 +4,5 @@ Urls for the django_comment_client. from django.conf.urls import include, url urlpatterns = [ - url(r'', include('django_comment_client.base.urls')), + url(r'', include('lms.djangoapps.discussion.django_comment_client.base.urls')), ] diff --git a/lms/djangoapps/django_comment_client/utils.py b/lms/djangoapps/discussion/django_comment_client/utils.py similarity index 98% rename from lms/djangoapps/django_comment_client/utils.py rename to lms/djangoapps/discussion/django_comment_client/utils.py index ff6fb75e6e..58ccb683e1 100644 --- a/lms/djangoapps/django_comment_client/utils.py +++ b/lms/djangoapps/discussion/django_comment_client/utils.py @@ -1,3 +1,4 @@ +# pylint: skip-file import json import logging from collections import defaultdict @@ -15,17 +16,19 @@ from six import text_type from courseware import courses from courseware.access import has_access -from django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY -from django_comment_client.permissions import check_permissions_by_view, get_team, has_permission -from django_comment_client.settings import MAX_COMMENT_DEPTH -from django_comment_common.models import ( +from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY +from lms.djangoapps.discussion.django_comment_client.permissions import ( + check_permissions_by_view, get_team, has_permission, +) +from lms.djangoapps.discussion.django_comment_client.settings import MAX_COMMENT_DEPTH +from openedx.core.djangoapps.discussion_common.models import ( FORUM_ROLE_STUDENT, FORUM_ROLE_COMMUNITY_TA, CourseDiscussionSettings, DiscussionsIdMapping, Role ) -from django_comment_common.utils import get_course_discussion_settings +from openedx.core.djangoapps.discussion_common.utils import get_course_discussion_settings from openedx.core.djangoapps.course_groups.cohorts import get_cohort_id, get_cohort_names, is_course_cohorted from openedx.core.lib.cache_utils import request_cached from student.models import get_user_by_username_or_email @@ -271,7 +274,9 @@ def _filter_unstarted_categories(category_map, course): if key != "start_date": filtered_map["entries"][child][key] = unfiltered_map["entries"][child][key] else: - log.debug(u"Filtering out:%s with start_date: %s", child, unfiltered_map["entries"][child]["start_date"]) + log.debug( + u"Filtering out:%s with start_date: %s", child, unfiltered_map["entries"][child]["start_date"] + ) else: if course.self_paced or unfiltered_map["subcategories"][child]["start_date"] < now: filtered_map["children"].append((child, c_type)) @@ -568,7 +573,9 @@ def get_ability(course_id, content, user): user_group_id, content_user_group_id ), - 'can_reply': check_permissions_by_view(user, course_id, content, "create_comment" if content['type'] == 'thread' else "create_sub_comment"), + 'can_reply': check_permissions_by_view( + user, course_id, content, "create_comment" if content['type'] == 'thread' else "create_sub_comment", + ), 'can_delete': check_permissions_by_view( user, course_id, diff --git a/lms/djangoapps/django_comment_client/__init__.py b/lms/djangoapps/discussion/management/__init__.py similarity index 100% rename from lms/djangoapps/django_comment_client/__init__.py rename to lms/djangoapps/discussion/management/__init__.py diff --git a/lms/djangoapps/django_comment_client/management/__init__.py b/lms/djangoapps/discussion/management/commands/__init__.py similarity index 100% rename from lms/djangoapps/django_comment_client/management/__init__.py rename to lms/djangoapps/discussion/management/commands/__init__.py diff --git a/lms/djangoapps/django_comment_client/management/commands/assign_role.py b/lms/djangoapps/discussion/management/commands/assign_role.py similarity index 92% rename from lms/djangoapps/django_comment_client/management/commands/assign_role.py rename to lms/djangoapps/discussion/management/commands/assign_role.py index 053a8777d6..49466f17f0 100644 --- a/lms/djangoapps/django_comment_client/management/commands/assign_role.py +++ b/lms/djangoapps/discussion/management/commands/assign_role.py @@ -1,8 +1,9 @@ +# pylint: disable=missing-docstring from __future__ import print_function from django.contrib.auth.models import User from django.core.management.base import BaseCommand -from django_comment_common.models import Role +from openedx.core.djangoapps.discussion_common.models import Role class Command(BaseCommand): diff --git a/lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py b/lms/djangoapps/discussion/management/commands/assign_roles_for_course.py similarity index 87% rename from lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py rename to lms/djangoapps/discussion/management/commands/assign_roles_for_course.py index 4ea0295e01..6392475f61 100644 --- a/lms/djangoapps/django_comment_client/management/commands/assign_roles_for_course.py +++ b/lms/djangoapps/discussion/management/commands/assign_roles_for_course.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring """ This must be run only after seed_permissions_roles.py! @@ -7,7 +8,7 @@ Enrollments. from __future__ import print_function from django.core.management.base import BaseCommand -from django_comment_common.models import assign_default_role_on_enrollment +from openedx.core.djangoapps.discussion_common.models import assign_default_role_on_enrollment from student.models import CourseEnrollment diff --git a/lms/djangoapps/django_comment_client/management/commands/create_roles_for_existing.py b/lms/djangoapps/discussion/management/commands/create_roles_for_existing.py similarity index 88% rename from lms/djangoapps/django_comment_client/management/commands/create_roles_for_existing.py rename to lms/djangoapps/discussion/management/commands/create_roles_for_existing.py index 78f91012ec..bdcdced283 100644 --- a/lms/djangoapps/django_comment_client/management/commands/create_roles_for_existing.py +++ b/lms/djangoapps/discussion/management/commands/create_roles_for_existing.py @@ -7,7 +7,7 @@ Enrollments. from __future__ import print_function from django.core.management.base import BaseCommand -from django_comment_common.models import assign_default_role_on_enrollment +from openedx.core.djangoapps.discussion_common.models import assign_default_role_on_enrollment from student.models import CourseEnrollment diff --git a/lms/djangoapps/django_comment_client/management/commands/get_discussion_link.py b/lms/djangoapps/discussion/management/commands/get_discussion_link.py similarity index 95% rename from lms/djangoapps/django_comment_client/management/commands/get_discussion_link.py rename to lms/djangoapps/discussion/management/commands/get_discussion_link.py index d6c659191c..455ada839a 100644 --- a/lms/djangoapps/django_comment_client/management/commands/get_discussion_link.py +++ b/lms/djangoapps/discussion/management/commands/get_discussion_link.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring from courseware.courses import get_course from django.core.management.base import BaseCommand, CommandError from opaque_keys.edx.keys import CourseKey diff --git a/lms/djangoapps/django_comment_client/management/commands/reload_forum_users.py b/lms/djangoapps/discussion/management/commands/reload_forum_users.py similarity index 90% rename from lms/djangoapps/django_comment_client/management/commands/reload_forum_users.py rename to lms/djangoapps/discussion/management/commands/reload_forum_users.py index a428616094..0c839db11a 100644 --- a/lms/djangoapps/django_comment_client/management/commands/reload_forum_users.py +++ b/lms/djangoapps/discussion/management/commands/reload_forum_users.py @@ -1,11 +1,12 @@ +# pylint: disable=missing-docstring,broad-except """ Reload forum (comment client) users from existing users. """ from __future__ import print_function -import lms.lib.comment_client as cc from django.contrib.auth.models import User from django.core.management.base import BaseCommand +import openedx.core.djangoapps.discussion_common.comment_client as cc class Command(BaseCommand): diff --git a/lms/djangoapps/django_comment_client/management/commands/seed_permissions_roles.py b/lms/djangoapps/discussion/management/commands/seed_permissions_roles.py similarity index 82% rename from lms/djangoapps/django_comment_client/management/commands/seed_permissions_roles.py rename to lms/djangoapps/discussion/management/commands/seed_permissions_roles.py index 4266c67915..93a3026077 100644 --- a/lms/djangoapps/django_comment_client/management/commands/seed_permissions_roles.py +++ b/lms/djangoapps/discussion/management/commands/seed_permissions_roles.py @@ -1,9 +1,10 @@ +# pylint: disable=missing-docstring """ Management command to seed default permissions and roles. """ from django.core.management.base import BaseCommand -from django_comment_common.utils import seed_permissions_roles from opaque_keys.edx.keys import CourseKey +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles class Command(BaseCommand): diff --git a/lms/djangoapps/django_comment_client/management/commands/show_permissions.py b/lms/djangoapps/discussion/management/commands/show_permissions.py similarity index 95% rename from lms/djangoapps/django_comment_client/management/commands/show_permissions.py rename to lms/djangoapps/discussion/management/commands/show_permissions.py index e1a4002983..609e6a264f 100644 --- a/lms/djangoapps/django_comment_client/management/commands/show_permissions.py +++ b/lms/djangoapps/discussion/management/commands/show_permissions.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring,too-many-format-args from __future__ import print_function from django.contrib.auth.models import User diff --git a/lms/djangoapps/django_comment_client/management/commands/sync_user_info.py b/lms/djangoapps/discussion/management/commands/sync_user_info.py similarity index 89% rename from lms/djangoapps/django_comment_client/management/commands/sync_user_info.py rename to lms/djangoapps/discussion/management/commands/sync_user_info.py index ab64e570ee..414cc1f5b7 100644 --- a/lms/djangoapps/django_comment_client/management/commands/sync_user_info.py +++ b/lms/djangoapps/discussion/management/commands/sync_user_info.py @@ -3,9 +3,9 @@ One-off script to sync all user information to the discussion service (later info will be synced automatically) """ -import lms.lib.comment_client as cc from django.contrib.auth.models import User from django.core.management.base import BaseCommand +import openedx.core.djangoapps.discussion_common.comment_client as cc class Command(BaseCommand): diff --git a/lms/djangoapps/discussion_api/README.rst b/lms/djangoapps/discussion/notification_prefs/README.rst similarity index 100% rename from lms/djangoapps/discussion_api/README.rst rename to lms/djangoapps/discussion/notification_prefs/README.rst diff --git a/lms/djangoapps/notification_prefs/__init__.py b/lms/djangoapps/discussion/notification_prefs/__init__.py similarity index 55% rename from lms/djangoapps/notification_prefs/__init__.py rename to lms/djangoapps/discussion/notification_prefs/__init__.py index daed38e2b0..ea3cc69021 100644 --- a/lms/djangoapps/notification_prefs/__init__.py +++ b/lms/djangoapps/discussion/notification_prefs/__init__.py @@ -1 +1,2 @@ +# pylint: disable=missing-docstring NOTIFICATION_PREF_KEY = "notification_pref" diff --git a/lms/djangoapps/django_comment_client/management/commands/__init__.py b/lms/djangoapps/discussion/notification_prefs/features/__init__.py similarity index 100% rename from lms/djangoapps/django_comment_client/management/commands/__init__.py rename to lms/djangoapps/discussion/notification_prefs/features/__init__.py diff --git a/lms/djangoapps/notification_prefs/features/unsubscribe.feature b/lms/djangoapps/discussion/notification_prefs/features/unsubscribe.feature similarity index 100% rename from lms/djangoapps/notification_prefs/features/unsubscribe.feature rename to lms/djangoapps/discussion/notification_prefs/features/unsubscribe.feature diff --git a/lms/djangoapps/notification_prefs/features/unsubscribe.py b/lms/djangoapps/discussion/notification_prefs/features/unsubscribe.py similarity index 84% rename from lms/djangoapps/notification_prefs/features/unsubscribe.py rename to lms/djangoapps/discussion/notification_prefs/features/unsubscribe.py index 627816cb42..6cc72db3d0 100644 --- a/lms/djangoapps/notification_prefs/features/unsubscribe.py +++ b/lms/djangoapps/discussion/notification_prefs/features/unsubscribe.py @@ -1,7 +1,8 @@ +# pylint: disable=missing-docstring,unused-argument,no-member from django.contrib.auth.models import User from lettuce import step, world -from notification_prefs import NOTIFICATION_PREF_KEY +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY from openedx.core.djangoapps.user_api.preferences.api import get_user_preference, set_user_preference USERNAME = "robot" diff --git a/lms/djangoapps/notification_prefs/tests.py b/lms/djangoapps/discussion/notification_prefs/tests.py similarity index 97% rename from lms/djangoapps/notification_prefs/tests.py rename to lms/djangoapps/discussion/notification_prefs/tests.py index 54b50d4476..2f5504f601 100644 --- a/lms/djangoapps/notification_prefs/tests.py +++ b/lms/djangoapps/discussion/notification_prefs/tests.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring,consider-iterating-dictionary import json from django.contrib.auth.models import AnonymousUser @@ -9,8 +10,10 @@ from django.test.client import RequestFactory from django.test.utils import override_settings from mock import patch -from notification_prefs import NOTIFICATION_PREF_KEY -from notification_prefs.views import UsernameCipher, ajax_disable, ajax_enable, ajax_status, set_subscription +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY +from lms.djangoapps.discussion.notification_prefs.views import ( + UsernameCipher, ajax_disable, ajax_enable, ajax_status, set_subscription, +) from openedx.core.djangoapps.user_api.models import UserPreference from student.tests.factories import UserFactory from util.testing import UrlResetMixin diff --git a/lms/djangoapps/notification_prefs/views.py b/lms/djangoapps/discussion/notification_prefs/views.py similarity index 97% rename from lms/djangoapps/notification_prefs/views.py rename to lms/djangoapps/discussion/notification_prefs/views.py index 18c11f6b31..7db557fa2a 100644 --- a/lms/djangoapps/notification_prefs/views.py +++ b/lms/djangoapps/discussion/notification_prefs/views.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring """ Views to support notification preferences. """ @@ -22,7 +23,7 @@ from django.views.decorators.http import require_GET, require_POST from six import text_type from edxmako.shortcuts import render_to_response -from notification_prefs import NOTIFICATION_PREF_KEY +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY from openedx.core.djangoapps.user_api.models import UserPreference from openedx.core.djangoapps.user_api.preferences.api import delete_user_preference @@ -90,7 +91,7 @@ class UsernameCipher(object): try: unpadded = unpadder.update(decrypted) + unpadder.finalize() - if len(unpadded) == 0: + if len(unpadded) == 0: # pylint: disable=len-as-condition raise UsernameDecryptionException("padding") return unpadded except ValueError: diff --git a/lms/djangoapps/django_comment_client/README.rst b/lms/djangoapps/discussion/notifier_api/README.rst similarity index 100% rename from lms/djangoapps/django_comment_client/README.rst rename to lms/djangoapps/discussion/notifier_api/README.rst diff --git a/lms/djangoapps/django_comment_client/migrations/__init__.py b/lms/djangoapps/discussion/notifier_api/__init__.py similarity index 100% rename from lms/djangoapps/django_comment_client/migrations/__init__.py rename to lms/djangoapps/discussion/notifier_api/__init__.py diff --git a/lms/djangoapps/notifier_api/serializers.py b/lms/djangoapps/discussion/notifier_api/serializers.py similarity index 95% rename from lms/djangoapps/notifier_api/serializers.py rename to lms/djangoapps/discussion/notifier_api/serializers.py index e20796a3cf..206d4958ec 100644 --- a/lms/djangoapps/notifier_api/serializers.py +++ b/lms/djangoapps/discussion/notifier_api/serializers.py @@ -1,8 +1,9 @@ +# pylint: disable=missing-docstring from django.contrib.auth.models import User from django.http import Http404 from rest_framework import serializers -from lms.djangoapps.notification_prefs import NOTIFICATION_PREF_KEY +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY from openedx.core.djangoapps.course_groups.cohorts import is_course_cohorted from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY diff --git a/lms/djangoapps/notifier_api/tests.py b/lms/djangoapps/discussion/notifier_api/tests.py similarity index 97% rename from lms/djangoapps/notifier_api/tests.py rename to lms/djangoapps/discussion/notifier_api/tests.py index 3ede34e2c3..bb52a6e20a 100644 --- a/lms/djangoapps/notifier_api/tests.py +++ b/lms/djangoapps/discussion/notifier_api/tests.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring from __future__ import absolute_import import itertools @@ -7,10 +8,10 @@ from django.test.client import RequestFactory from django.test.utils import override_settings from opaque_keys.edx.locator import CourseLocator -from django_comment_common.models import Permission, Role -from notification_prefs import NOTIFICATION_PREF_KEY -from notifier_api.views import NotifierUsersViewSet +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY +from lms.djangoapps.discussion.notifier_api.views import NotifierUsersViewSet from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory +from openedx.core.djangoapps.discussion_common.models import Permission, Role from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY from openedx.core.djangoapps.user_api.models import UserPreference from openedx.core.djangoapps.user_api.tests.factories import UserPreferenceFactory diff --git a/lms/djangoapps/notifier_api/urls.py b/lms/djangoapps/discussion/notifier_api/urls.py similarity index 80% rename from lms/djangoapps/notifier_api/urls.py rename to lms/djangoapps/discussion/notifier_api/urls.py index b5ee772670..14b4bc1b06 100644 --- a/lms/djangoapps/notifier_api/urls.py +++ b/lms/djangoapps/discussion/notifier_api/urls.py @@ -5,7 +5,7 @@ URLs for the notifier api app from django.conf.urls import include, url from rest_framework import routers -from notifier_api.views import NotifierUsersViewSet +from lms.djangoapps.discussion.notifier_api.views import NotifierUsersViewSet notifier_api_router = routers.DefaultRouter() notifier_api_router.register(r'users', NotifierUsersViewSet, base_name="notifier_users") diff --git a/lms/djangoapps/notifier_api/views.py b/lms/djangoapps/discussion/notifier_api/views.py similarity index 87% rename from lms/djangoapps/notifier_api/views.py rename to lms/djangoapps/discussion/notifier_api/views.py index 2786cfb96a..d09ecaeb00 100644 --- a/lms/djangoapps/notifier_api/views.py +++ b/lms/djangoapps/discussion/notifier_api/views.py @@ -1,10 +1,13 @@ +""" +Django views for the Notifier. +""" from django.contrib.auth.models import User from rest_framework import pagination from rest_framework.response import Response from rest_framework.viewsets import ReadOnlyModelViewSet -from notification_prefs import NOTIFICATION_PREF_KEY -from notifier_api.serializers import NotifierUserSerializer +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY +from lms.djangoapps.discussion.notifier_api.serializers import NotifierUserSerializer from openedx.core.lib.api.permissions import ApiKeyHeaderPermission diff --git a/lms/djangoapps/discussion/plugins.py b/lms/djangoapps/discussion/plugins.py index 822b2c4431..82c220b559 100644 --- a/lms/djangoapps/discussion/plugins.py +++ b/lms/djangoapps/discussion/plugins.py @@ -5,7 +5,7 @@ Views handling read (GET) requests for the Discussion tab and inline discussions from django.conf import settings from django.utils.translation import ugettext_noop -import django_comment_client.utils as utils +import lms.djangoapps.discussion.django_comment_client.utils as utils from courseware.tabs import EnrolledTab from xmodule.tabs import TabFragmentViewMixin diff --git a/lms/djangoapps/django_comment_client/tests/__init__.py b/lms/djangoapps/discussion/rest_api/__init__.py similarity index 100% rename from lms/djangoapps/django_comment_client/tests/__init__.py rename to lms/djangoapps/discussion/rest_api/__init__.py diff --git a/lms/djangoapps/discussion_api/api.py b/lms/djangoapps/discussion/rest_api/api.py similarity index 95% rename from lms/djangoapps/discussion_api/api.py rename to lms/djangoapps/discussion/rest_api/api.py index cbda8f99d1..b692e2db43 100644 --- a/lms/djangoapps/discussion_api/api.py +++ b/lms/djangoapps/discussion/rest_api/api.py @@ -3,30 +3,43 @@ Discussion API internal interface """ import itertools from collections import defaultdict +from enum import Enum from urllib import urlencode from urlparse import urlunparse from django.core.exceptions import ValidationError from django.urls import reverse from django.http import Http404 -from enum import Enum from opaque_keys import InvalidKeyError from opaque_keys.edx.locator import CourseKey from rest_framework.exceptions import PermissionDenied -from courseware.courses import get_course_with_access -from discussion_api.exceptions import CommentNotFoundError, DiscussionDisabledError, ThreadNotFoundError -from discussion_api.forms import CommentActionsForm, ThreadActionsForm -from discussion_api.permissions import ( +from lms.djangoapps.courseware.courses import get_course_with_access +from lms.djangoapps.discussion.rest_api.exceptions import ( + CommentNotFoundError, DiscussionDisabledError, ThreadNotFoundError, +) +from lms.djangoapps.discussion.rest_api.forms import CommentActionsForm, ThreadActionsForm +from lms.djangoapps.discussion.rest_api.permissions import ( can_delete, get_editable_fields, get_initializable_comment_fields, get_initializable_thread_fields ) -from discussion_api.serializers import CommentSerializer, DiscussionTopicSerializer, ThreadSerializer, get_context -from django_comment_client.base.views import track_comment_created_event, track_thread_created_event, track_voted_event -from django_comment_client.utils import get_accessible_discussion_xblocks, get_group_id_for_user, is_commentable_divided -from django_comment_common.signals import ( +from lms.djangoapps.discussion.rest_api.serializers import ( + CommentSerializer, DiscussionTopicSerializer, ThreadSerializer, get_context, +) +from lms.djangoapps.discussion.django_comment_client.base.views import ( + track_comment_created_event, track_thread_created_event, track_voted_event, +) +from lms.djangoapps.discussion.django_comment_client.utils import ( + get_accessible_discussion_xblocks, get_group_id_for_user, is_commentable_divided, +) +from lms.djangoapps.courseware.exceptions import CourseAccessRedirect +from lms.djangoapps.discussion.rest_api.pagination import DiscussionAPIPagination +from openedx.core.djangoapps.discussion_common.comment_client.comment import Comment +from openedx.core.djangoapps.discussion_common.comment_client.thread import Thread +from openedx.core.djangoapps.discussion_common.comment_client.utils import CommentClientRequestError +from openedx.core.djangoapps.discussion_common.signals import ( comment_created, comment_deleted, comment_edited, @@ -36,12 +49,7 @@ from django_comment_common.signals import ( thread_edited, thread_voted ) -from django_comment_common.utils import get_course_discussion_settings -from lms.djangoapps.courseware.exceptions import CourseAccessRedirect -from lms.djangoapps.discussion_api.pagination import DiscussionAPIPagination -from lms.lib.comment_client.comment import Comment -from lms.lib.comment_client.thread import Thread -from lms.lib.comment_client.utils import CommentClientRequestError +from openedx.core.djangoapps.discussion_common.utils import get_course_discussion_settings from openedx.core.djangoapps.user_api.accounts.views import AccountViewSet from openedx.core.lib.exceptions import CourseNotFoundError, DiscussionNotFoundError, PageNotFoundError @@ -175,7 +183,7 @@ def get_course(request, course_key): Returns: - The course information; see discussion_api.views.CourseView for more + The course information; see discussion.rest_api.views.CourseView for more detail. Raises: @@ -305,7 +313,7 @@ def get_course_topics(request, course_key, topic_ids=None): Returns: - A course topic listing dictionary; see discussion_api.views.CourseTopicViews + A course topic listing dictionary; see discussion.rest_api.views.CourseTopicViews for more detail. Raises: @@ -510,7 +518,7 @@ def get_thread_list( Returns: A paginated result containing a list of threads; see - discussion_api.views.ThreadViewSet for more detail. + discussion.rest_api.views.ThreadViewSet for more detail. Raises: @@ -612,7 +620,7 @@ def get_comment_list(request, thread_id, endorsed, page, page_size, requested_fi Returns: A paginated result containing a list of comments; see - discussion_api.views.CommentViewSet for more detail. + discussion.rest_api.views.CommentViewSet for more detail. """ response_skip = page_size * (page - 1) cc_thread, context = _get_thread_and_context( @@ -809,7 +817,7 @@ def create_thread(request, thread_data): Returns: - The created thread; see discussion_api.views.ThreadViewSet for more + The created thread; see discussion.rest_api.views.ThreadViewSet for more detail. """ course_id = thread_data.get("course_id") @@ -859,7 +867,7 @@ def create_comment(request, comment_data): Returns: - The created comment; see discussion_api.views.CommentViewSet for more + The created comment; see discussion.rest_api.views.CommentViewSet for more detail. """ thread_id = comment_data.get("thread_id") @@ -902,7 +910,7 @@ def update_thread(request, thread_id, update_data): Returns: - The updated thread; see discussion_api.views.ThreadViewSet for more + The updated thread; see discussion.rest_api.views.ThreadViewSet for more detail. """ cc_thread, context = _get_thread_and_context(request, thread_id, retrieve_kwargs={"with_responses": True}) @@ -941,7 +949,7 @@ def update_comment(request, comment_id, update_data): Returns: - The updated comment; see discussion_api.views.CommentViewSet for more + The updated comment; see discussion.rest_api.views.CommentViewSet for more detail. Raises: @@ -1042,7 +1050,7 @@ def get_response_comments(request, comment_id, page, page_size, requested_fields response_skip = page_size * (page - 1) paged_response_comments = response_comments[response_skip:(response_skip + page_size)] - if len(paged_response_comments) == 0 and page != 1: + if not paged_response_comments and page != 1: raise PageNotFoundError("Page not found (No results on this page).") results = _serialize_discussion_entities( diff --git a/lms/djangoapps/discussion_api/exceptions.py b/lms/djangoapps/discussion/rest_api/exceptions.py similarity index 100% rename from lms/djangoapps/discussion_api/exceptions.py rename to lms/djangoapps/discussion/rest_api/exceptions.py diff --git a/lms/djangoapps/discussion_api/forms.py b/lms/djangoapps/discussion/rest_api/forms.py similarity index 93% rename from lms/djangoapps/discussion_api/forms.py rename to lms/djangoapps/discussion/rest_api/forms.py index 346b83afec..2ce35cfdbd 100644 --- a/lms/djangoapps/discussion_api/forms.py +++ b/lms/djangoapps/discussion/rest_api/forms.py @@ -11,7 +11,9 @@ from opaque_keys.edx.locator import CourseLocator from six import text_type from courseware.courses import get_course_with_access -from django_comment_common.models import Role, FORUM_ROLE_MODERATOR, FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_GROUP_MODERATOR +from openedx.core.djangoapps.discussion_common.models import ( + Role, FORUM_ROLE_MODERATOR, FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_GROUP_MODERATOR, +) from openedx.core.djangoapps.util.forms import ExtendedNullBooleanField, MultiValueField @@ -146,7 +148,7 @@ class CourseDiscussionSettingsForm(Form): self.cleaned_data['course_key'] = course_key return course_id except InvalidKeyError: - raise ValidationError("'{}' is not a valid course key".format(text_type(course_id))) + raise ValidationError(u"'{}' is not a valid course key".format(text_type(course_id))) class CourseDiscussionRolesForm(CourseDiscussionSettingsForm): @@ -160,7 +162,7 @@ class CourseDiscussionRolesForm(CourseDiscussionSettingsForm): ) rolename = ChoiceField( ROLE_CHOICES, - error_messages={"invalid_choice": "Role '%(value)s' does not exist"} + error_messages={u"invalid_choice": u"Role '%(value)s' does not exist"} ) def clean_rolename(self): @@ -171,7 +173,7 @@ class CourseDiscussionRolesForm(CourseDiscussionSettingsForm): try: role = Role.objects.get(name=rolename, course_id=course_id) except Role.DoesNotExist: - raise ValidationError("Role '{}' does not exist".format(rolename)) + raise ValidationError(u"Role '{}' does not exist".format(rolename)) self.cleaned_data['role'] = role return rolename diff --git a/lms/djangoapps/discussion_api/pagination.py b/lms/djangoapps/discussion/rest_api/pagination.py similarity index 100% rename from lms/djangoapps/discussion_api/pagination.py rename to lms/djangoapps/discussion/rest_api/pagination.py diff --git a/lms/djangoapps/discussion_api/permissions.py b/lms/djangoapps/discussion/rest_api/permissions.py similarity index 94% rename from lms/djangoapps/discussion_api/permissions.py rename to lms/djangoapps/discussion/rest_api/permissions.py index 37f0d2f6d3..9178985ca1 100644 --- a/lms/djangoapps/discussion_api/permissions.py +++ b/lms/djangoapps/discussion/rest_api/permissions.py @@ -1,8 +1,8 @@ """ Discussion API permission logic """ -from lms.lib.comment_client.comment import Comment -from lms.lib.comment_client.thread import Thread +from openedx.core.djangoapps.discussion_common.comment_client.comment import Comment +from openedx.core.djangoapps.discussion_common.comment_client.thread import Thread def _is_author(cc_content, context): diff --git a/lms/djangoapps/discussion_api/render.py b/lms/djangoapps/discussion/rest_api/render.py similarity index 100% rename from lms/djangoapps/discussion_api/render.py rename to lms/djangoapps/discussion/rest_api/render.py diff --git a/lms/djangoapps/discussion_api/serializers.py b/lms/djangoapps/discussion/rest_api/serializers.py similarity index 94% rename from lms/djangoapps/discussion_api/serializers.py rename to lms/djangoapps/discussion/rest_api/serializers.py index 74e4fcb290..e1e0da0fbf 100644 --- a/lms/djangoapps/discussion_api/serializers.py +++ b/lms/djangoapps/discussion/rest_api/serializers.py @@ -9,22 +9,28 @@ from django.core.exceptions import ValidationError from django.urls import reverse from rest_framework import serializers -from discussion.views import get_divided_discussions -from discussion_api.permissions import NON_UPDATABLE_COMMENT_FIELDS, NON_UPDATABLE_THREAD_FIELDS, get_editable_fields -from discussion_api.render import render_body -from django_comment_client.utils import is_comment_too_deep, get_group_id_for_user, get_group_name -from django_comment_common.models import ( +from openedx.core.djangoapps.discussion_common.models import ( FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_MODERATOR, Role, ) -from django_comment_common.utils import get_course_discussion_settings -from lms.djangoapps.django_comment_client.utils import course_discussion_division_enabled, get_group_names_by_id -from lms.lib.comment_client.comment import Comment -from lms.lib.comment_client.thread import Thread -from lms.lib.comment_client.user import User as CommentClientUser -from lms.lib.comment_client.utils import CommentClientRequestError +from openedx.core.djangoapps.discussion_common.comment_client.comment import Comment +from openedx.core.djangoapps.discussion_common.comment_client.thread import Thread +from openedx.core.djangoapps.discussion_common.comment_client.user import User as CommentClientUser +from openedx.core.djangoapps.discussion_common.comment_client.utils import CommentClientRequestError +from openedx.core.djangoapps.discussion_common.utils import get_course_discussion_settings +from lms.djangoapps.discussion.django_comment_client.utils import ( + is_comment_too_deep, get_group_id_for_user, get_group_name, +) +from lms.djangoapps.discussion.rest_api.permissions import ( + NON_UPDATABLE_COMMENT_FIELDS, NON_UPDATABLE_THREAD_FIELDS, get_editable_fields, +) +from lms.djangoapps.discussion.rest_api.render import render_body +from lms.djangoapps.discussion.views import get_divided_discussions +from lms.djangoapps.discussion.django_comment_client.utils import ( + course_discussion_division_enabled, get_group_names_by_id, +) from student.models import get_user_by_username_or_email @@ -75,6 +81,7 @@ def validate_not_blank(value): class _ContentSerializer(serializers.Serializer): + # pylint: disable=abstract-method """ A base class for thread and comment serializers. """ @@ -368,6 +375,7 @@ class CommentSerializer(_ContentSerializer): ] def to_representation(self, data): + # pylint: disable=arguments-differ data = super(CommentSerializer, self).to_representation(data) # Django Rest Framework v3 no longer includes None values @@ -529,7 +537,7 @@ class DiscussionRolesSerializer(serializers.Serializer): self.user = get_user_by_username_or_email(user_id) return user_id except DjangoUser.DoesNotExist: - raise ValidationError("'{}' is not a valid student identifier".format(user_id)) + raise ValidationError(u"'{}' is not a valid student identifier".format(user_id)) def validate(self, attrs): """Validate the data at an object level.""" diff --git a/lms/djangoapps/django_comment_client/tests/mock_cs_server/__init__.py b/lms/djangoapps/discussion/rest_api/tests/__init__.py similarity index 100% rename from lms/djangoapps/django_comment_client/tests/mock_cs_server/__init__.py rename to lms/djangoapps/discussion/rest_api/tests/__init__.py diff --git a/lms/djangoapps/discussion_api/tests/test_api.py b/lms/djangoapps/discussion/rest_api/tests/test_api.py similarity index 99% rename from lms/djangoapps/discussion_api/tests/test_api.py rename to lms/djangoapps/discussion/rest_api/tests/test_api.py index ef3dbbe351..b3c7b44525 100644 --- a/lms/djangoapps/discussion_api/tests/test_api.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_api.py @@ -17,8 +17,8 @@ from rest_framework.exceptions import PermissionDenied from common.test.utils import MockSignalHandlerMixin, disable_signal from courseware.tests.factories import BetaTesterFactory, StaffFactory -from discussion_api import api -from discussion_api.api import ( +from lms.djangoapps.discussion.rest_api import api +from lms.djangoapps.discussion.rest_api.api import ( create_comment, create_thread, delete_comment, @@ -31,15 +31,17 @@ from discussion_api.api import ( update_comment, update_thread ) -from discussion_api.exceptions import CommentNotFoundError, DiscussionDisabledError, ThreadNotFoundError -from discussion_api.tests.utils import ( +from lms.djangoapps.discussion.rest_api.exceptions import ( + CommentNotFoundError, DiscussionDisabledError, ThreadNotFoundError, +) +from lms.djangoapps.discussion.rest_api.tests.utils import ( CommentsServiceMockMixin, make_minimal_cs_comment, make_minimal_cs_thread, make_paginated_api_response ) -from django_comment_client.tests.utils import ForumsEnableMixin -from django_comment_common.models import ( +from lms.djangoapps.discussion.django_comment_client.tests.utils import ForumsEnableMixin +from openedx.core.djangoapps.discussion_common.models import ( FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_MODERATOR, @@ -1549,7 +1551,7 @@ class CreateThreadTest( }) self.register_post_thread_response(cs_thread) with self.assert_signal_sent(api, 'thread_created', sender=None, user=self.user, exclude_args=('post',)): - actual = create_thread(self.request, data) + create_thread(self.request, data) event_name, event_data = mock_emit.call_args[0] self.assertEqual(event_name, "edx.forum.thread.created") self.assertEqual( diff --git a/lms/djangoapps/discussion_api/tests/test_forms.py b/lms/djangoapps/discussion/rest_api/tests/test_forms.py similarity index 98% rename from lms/djangoapps/discussion_api/tests/test_forms.py rename to lms/djangoapps/discussion/rest_api/tests/test_forms.py index 8bc87d4e59..1e79d93c7e 100644 --- a/lms/djangoapps/discussion_api/tests/test_forms.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_forms.py @@ -9,7 +9,7 @@ import ddt from django.http import QueryDict from opaque_keys.edx.locator import CourseLocator -from discussion_api.forms import CommentListGetForm, ThreadListGetForm +from lms.djangoapps.discussion.rest_api.forms import CommentListGetForm, ThreadListGetForm from openedx.core.djangoapps.util.test_forms import FormTestMixin diff --git a/lms/djangoapps/discussion_api/tests/test_pagination.py b/lms/djangoapps/discussion/rest_api/tests/test_pagination.py similarity index 91% rename from lms/djangoapps/discussion_api/tests/test_pagination.py rename to lms/djangoapps/discussion/rest_api/tests/test_pagination.py index 7d904274f5..a76d10e7a5 100644 --- a/lms/djangoapps/discussion_api/tests/test_pagination.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_pagination.py @@ -5,8 +5,8 @@ from unittest import TestCase from django.test import RequestFactory -from discussion_api.pagination import DiscussionAPIPagination -from discussion_api.tests.utils import make_paginated_api_response +from lms.djangoapps.discussion.rest_api.pagination import DiscussionAPIPagination +from lms.djangoapps.discussion.rest_api.tests.utils import make_paginated_api_response class PaginationSerializerTest(TestCase): diff --git a/lms/djangoapps/discussion_api/tests/test_permissions.py b/lms/djangoapps/discussion/rest_api/tests/test_permissions.py similarity index 94% rename from lms/djangoapps/discussion_api/tests/test_permissions.py rename to lms/djangoapps/discussion/rest_api/tests/test_permissions.py index da407236ab..8129c0b325 100644 --- a/lms/djangoapps/discussion_api/tests/test_permissions.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_permissions.py @@ -5,15 +5,15 @@ import itertools import ddt -from discussion_api.permissions import ( +from lms.djangoapps.discussion.rest_api.permissions import ( can_delete, get_editable_fields, get_initializable_comment_fields, get_initializable_thread_fields ) -from lms.lib.comment_client.comment import Comment -from lms.lib.comment_client.thread import Thread -from lms.lib.comment_client.user import User +from openedx.core.djangoapps.discussion_common.comment_client.comment import Comment +from openedx.core.djangoapps.discussion_common.comment_client.thread import Thread +from openedx.core.djangoapps.discussion_common.comment_client.user import User from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory diff --git a/lms/djangoapps/discussion_api/tests/test_render.py b/lms/djangoapps/discussion/rest_api/tests/test_render.py similarity index 97% rename from lms/djangoapps/discussion_api/tests/test_render.py rename to lms/djangoapps/discussion/rest_api/tests/test_render.py index 3aefe6dcb2..55b10e690b 100644 --- a/lms/djangoapps/discussion_api/tests/test_render.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_render.py @@ -5,7 +5,7 @@ from unittest import TestCase import ddt -from discussion_api.render import render_body +from lms.djangoapps.discussion.rest_api.render import render_body def _add_p_tags(raw_body): diff --git a/lms/djangoapps/discussion_api/tests/test_serializers.py b/lms/djangoapps/discussion/rest_api/tests/test_serializers.py similarity index 98% rename from lms/djangoapps/discussion_api/tests/test_serializers.py rename to lms/djangoapps/discussion/rest_api/tests/test_serializers.py index a92e1c0f85..fb85a36ed6 100644 --- a/lms/djangoapps/discussion_api/tests/test_serializers.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_serializers.py @@ -9,18 +9,20 @@ import httpretty import mock from django.test.client import RequestFactory -from discussion_api.serializers import CommentSerializer, ThreadSerializer, get_context -from discussion_api.tests.utils import CommentsServiceMockMixin, make_minimal_cs_comment, make_minimal_cs_thread -from django_comment_client.tests.utils import ForumsEnableMixin -from django_comment_common.models import ( +from lms.djangoapps.discussion.rest_api.serializers import CommentSerializer, ThreadSerializer, get_context +from lms.djangoapps.discussion.rest_api.tests.utils import ( + CommentsServiceMockMixin, make_minimal_cs_comment, make_minimal_cs_thread, +) +from lms.djangoapps.discussion.django_comment_client.tests.utils import ForumsEnableMixin +from openedx.core.djangoapps.discussion_common.comment_client.comment import Comment +from openedx.core.djangoapps.discussion_common.comment_client.thread import Thread +from openedx.core.djangoapps.discussion_common.models import ( FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_MODERATOR, FORUM_ROLE_STUDENT, Role ) -from lms.lib.comment_client.comment import Comment -from lms.lib.comment_client.thread import Thread from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory from student.tests.factories import UserFactory from util.testing import UrlResetMixin @@ -737,7 +739,7 @@ class CommentSerializerDeserializationTest(ForumsEnableMixin, CommentsServiceMoc @ddt.data(None, -1, 0, 2, 5) def test_create_parent_id_too_deep(self, max_depth): - with mock.patch("django_comment_client.utils.MAX_COMMENT_DEPTH", max_depth): + with mock.patch("lms.djangoapps.discussion.django_comment_client.utils.MAX_COMMENT_DEPTH", max_depth): data = self.minimal_data.copy() context = get_context(self.course, self.request, make_minimal_cs_thread()) if max_depth is None or max_depth >= 0: diff --git a/lms/djangoapps/discussion_api/tests/test_views.py b/lms/djangoapps/discussion/rest_api/tests/test_views.py similarity index 99% rename from lms/djangoapps/discussion_api/tests/test_views.py rename to lms/djangoapps/discussion/rest_api/tests/test_views.py index 6c0335c2b9..69c0e667ce 100644 --- a/lms/djangoapps/discussion_api/tests/test_views.py +++ b/lms/djangoapps/discussion/rest_api/tests/test_views.py @@ -21,17 +21,19 @@ from six import text_type from common.test.utils import disable_signal from course_modes.models import CourseMode from course_modes.tests.factories import CourseModeFactory -from discussion_api import api -from discussion_api.tests.utils import ( +from lms.djangoapps.discussion.rest_api import api +from lms.djangoapps.discussion.rest_api.tests.utils import ( CommentsServiceMockMixin, ProfileImageTestMixin, make_minimal_cs_comment, make_minimal_cs_thread, make_paginated_api_response ) -from django_comment_client.tests.utils import ForumsEnableMixin, config_course_discussions, topic_name_to_id -from django_comment_common.models import CourseDiscussionSettings, Role -from django_comment_common.utils import seed_permissions_roles +from lms.djangoapps.discussion.django_comment_client.tests.utils import ( + ForumsEnableMixin, config_course_discussions, topic_name_to_id, +) +from openedx.core.djangoapps.discussion_common.models import CourseDiscussionSettings, Role +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from openedx.core.djangoapps.course_groups.tests.helpers import config_course_cohorts from openedx.core.djangoapps.oauth_dispatch.jwt import create_jwt_for_user from openedx.core.djangoapps.user_api.accounts.image_helpers import get_profile_image_storage diff --git a/lms/djangoapps/discussion_api/tests/utils.py b/lms/djangoapps/discussion/rest_api/tests/utils.py similarity index 99% rename from lms/djangoapps/discussion_api/tests/utils.py rename to lms/djangoapps/discussion/rest_api/tests/utils.py index 4641ccc807..23a2303119 100644 --- a/lms/djangoapps/discussion_api/tests/utils.py +++ b/lms/djangoapps/discussion/rest_api/tests/utils.py @@ -521,7 +521,7 @@ class ProfileImageTestMixin(object): self.assertTrue(storage.exists(name)) with closing(Image.open(storage.path(name))) as img: self.assertEqual(img.size, (size, size)) - self.assertEqual(img.format, 'JPEG') + self.assertEqual(img.format, 'JPEG') # pylint: disable=no-member else: self.assertFalse(storage.exists(name)) diff --git a/lms/djangoapps/discussion_api/urls.py b/lms/djangoapps/discussion/rest_api/urls.py similarity index 90% rename from lms/djangoapps/discussion_api/urls.py rename to lms/djangoapps/discussion/rest_api/urls.py index 76a6f156e3..10332275d8 100644 --- a/lms/djangoapps/discussion_api/urls.py +++ b/lms/djangoapps/discussion/rest_api/urls.py @@ -1,3 +1,4 @@ +# pylint: skip-file """ Discussion API URLs """ @@ -5,7 +6,7 @@ from django.conf import settings from django.conf.urls import include, url from rest_framework.routers import SimpleRouter -from discussion_api.views import ( +from lms.djangoapps.discussion.rest_api.views import ( CommentViewSet, CourseDiscussionSettingsAPIView, CourseDiscussionRolesAPIView, @@ -29,7 +30,7 @@ urlpatterns = [ name="discussion_course_settings", ), url( - r'^v1/courses/{}/roles/(?P[A-Za-z0-9+ _-]+)/?$'.format( + r"^v1/courses/{}/roles/(?P[A-Za-z0-9+ _-]+)/?$".format( settings.COURSE_ID_PATTERN ), CourseDiscussionRolesAPIView.as_view(), diff --git a/lms/djangoapps/discussion_api/views.py b/lms/djangoapps/discussion/rest_api/views.py similarity index 98% rename from lms/djangoapps/discussion_api/views.py rename to lms/djangoapps/discussion/rest_api/views.py index 0000bb1563..fb10244821 100644 --- a/lms/djangoapps/discussion_api/views.py +++ b/lms/djangoapps/discussion/rest_api/views.py @@ -17,14 +17,10 @@ from rest_framework.views import APIView from rest_framework.viewsets import ViewSet from six import text_type -from django_comment_client.utils import available_division_schemes -from django_comment_common.models import Role -from django_comment_common.utils import get_course_discussion_settings, set_course_discussion_settings - from instructor.access import update_forum_role -from lms.lib import comment_client from discussion.views import get_divided_discussions -from discussion_api.api import ( +from lms.djangoapps.discussion.django_comment_client.utils import available_division_schemes +from lms.djangoapps.discussion.rest_api.api import ( create_comment, create_thread, delete_comment, @@ -38,13 +34,13 @@ from discussion_api.api import ( update_comment, update_thread ) -from discussion_api.forms import ( +from lms.djangoapps.discussion.rest_api.forms import ( CommentGetForm, CommentListGetForm, CourseDiscussionSettingsForm, ThreadListGetForm, CourseDiscussionRolesForm) -from discussion_api.serializers import ( +from lms.djangoapps.discussion.rest_api.serializers import ( DiscussionRolesSerializer, DiscussionRolesListSerializer, DiscussionSettingsSerializer, @@ -52,6 +48,11 @@ from discussion_api.serializers import ( from openedx.core.lib.api.authentication import OAuth2AuthenticationAllowInactiveUser from openedx.core.lib.api.parsers import MergePatchParser from openedx.core.lib.api.view_utils import DeveloperErrorViewMixin, view_auth_classes +from openedx.core.djangoapps.discussion_common import comment_client +from openedx.core.djangoapps.discussion_common.models import Role +from openedx.core.djangoapps.discussion_common.utils import ( + get_course_discussion_settings, set_course_discussion_settings, +) from openedx.core.djangoapps.user_api.accounts.permissions import CanReplaceUsername, CanRetireUser from openedx.core.djangoapps.user_api.models import UserRetirementStatus from util.json_request import JsonResponse @@ -930,7 +931,7 @@ class CourseDiscussionRolesAPIView(DeveloperErrorViewMixin, APIView): try: update_forum_role(course_id, user, rolename, action) except Role.DoesNotExist: - raise ValidationError("Role '{}' does not exist".format(rolename)) + raise ValidationError(u"Role '{}' does not exist".format(rolename)) role = form.cleaned_data['role'] data = {'course_id': course_id, 'users': role.users.all()} diff --git a/lms/djangoapps/discussion/signals/handlers.py b/lms/djangoapps/discussion/signals/handlers.py index 41f0b47c6b..3bcfdbcc59 100644 --- a/lms/djangoapps/discussion/signals/handlers.py +++ b/lms/djangoapps/discussion/signals/handlers.py @@ -6,8 +6,8 @@ import logging from django.conf import settings from django.dispatch import receiver -from django_comment_common import signals from lms.djangoapps.discussion import tasks +from openedx.core.djangoapps.discussion_common import signals from opaque_keys.edx.locator import LibraryLocator from openedx.core.djangoapps.site_configuration.models import SiteConfiguration from openedx.core.djangoapps.theming.helpers import get_current_site diff --git a/lms/djangoapps/discussion/tasks.py b/lms/djangoapps/discussion/tasks.py index 91ffe0a112..555541bb7d 100644 --- a/lms/djangoapps/discussion/tasks.py +++ b/lms/djangoapps/discussion/tasks.py @@ -11,18 +11,20 @@ from django.contrib.auth.models import User from django.contrib.sites.models import Site from celery_utils.logged_task import LoggedTask -from django_comment_common.models import DiscussionsIdMapping from edx_ace import ace from edx_ace.utils import date from edx_ace.recipient import Recipient from eventtracking import tracker +from lms.djangoapps.discussion.django_comment_client.utils import ( + permalink, get_accessible_discussion_xblocks_by_course_id, +) from opaque_keys.edx.keys import CourseKey -from lms.djangoapps.django_comment_client.utils import permalink, get_accessible_discussion_xblocks_by_course_id -import lms.lib.comment_client as cc -from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from openedx.core.djangoapps.ace_common.template_context import get_base_template_context from openedx.core.djangoapps.ace_common.message import BaseMessageType +from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +import openedx.core.djangoapps.discussion_common.comment_client as cc +from openedx.core.djangoapps.discussion_common.models import DiscussionsIdMapping from openedx.core.lib.celery.task_utils import emulate_http_request from track import segment diff --git a/lms/djangoapps/discussion/templates/discussion/discussion_board_fragment.html b/lms/djangoapps/discussion/templates/discussion/discussion_board_fragment.html index 824d0c5bb5..a79b6ab336 100644 --- a/lms/djangoapps/discussion/templates/discussion/discussion_board_fragment.html +++ b/lms/djangoapps/discussion/templates/discussion/discussion_board_fragment.html @@ -10,7 +10,7 @@ from django.utils.translation import ugettext as _ from django.template.defaultfilters import escapejs from django.urls import reverse -from django_comment_client.permissions import has_permission +from lms.djangoapps.discussion.django_comment_client.permissions import has_permission from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string from openedx.core.djangolib.markup import HTML %> diff --git a/lms/djangoapps/discussion/templates/discussion/discussion_profile_page.html b/lms/djangoapps/discussion/templates/discussion/discussion_profile_page.html index e28b32599f..ca3bdf9059 100644 --- a/lms/djangoapps/discussion/templates/discussion/discussion_profile_page.html +++ b/lms/djangoapps/discussion/templates/discussion/discussion_profile_page.html @@ -10,7 +10,7 @@ from django.utils.translation import ugettext as _, ungettext from django.template.defaultfilters import escapejs from django.urls import reverse -from django_comment_client.permissions import has_permission +from lms.djangoapps.discussion.django_comment_client.permissions import has_permission from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string %> diff --git a/lms/djangoapps/discussion/tests/test_signals.py b/lms/djangoapps/discussion/tests/test_signals.py index 02b7576045..c989bf1463 100644 --- a/lms/djangoapps/discussion/tests/test_signals.py +++ b/lms/djangoapps/discussion/tests/test_signals.py @@ -1,9 +1,9 @@ from django.test import TestCase import mock -from django_comment_common import signals, models from edx_django_utils.cache import RequestCache from lms.djangoapps.discussion.signals.handlers import ENABLE_FORUM_NOTIFICATIONS_FOR_SITE_KEY +from openedx.core.djangoapps.discussion_common import signals, models from openedx.core.djangoapps.site_configuration.tests.factories import SiteFactory, SiteConfigurationFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory diff --git a/lms/djangoapps/discussion/tests/test_tasks.py b/lms/djangoapps/discussion/tests/test_tasks.py index c7a7a119fe..dfd4e6bdde 100644 --- a/lms/djangoapps/discussion/tests/test_tasks.py +++ b/lms/djangoapps/discussion/tests/test_tasks.py @@ -9,18 +9,17 @@ import ddt from django.contrib.sites.models import Site import mock -import lms.lib.comment_client as cc - -from django_comment_common.models import ForumsConfig -from django_comment_common.signals import comment_created from edx_ace.recipient import Recipient from edx_ace.renderers import EmailRenderer from edx_ace.channel import ChannelType, get_channel_for_message from edx_ace.utils import date from lms.djangoapps.discussion.signals.handlers import ENABLE_FORUM_NOTIFICATIONS_FOR_SITE_KEY from lms.djangoapps.discussion.tasks import _should_send_message, _track_notification_sent -from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory from openedx.core.djangoapps.ace_common.template_context import get_base_template_context +from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory +import openedx.core.djangoapps.discussion_common.comment_client as cc +from openedx.core.djangoapps.discussion_common.models import ForumsConfig +from openedx.core.djangoapps.discussion_common.signals import comment_created from openedx.core.djangoapps.site_configuration.tests.factories import SiteConfigurationFactory from openedx.core.lib.celery.task_utils import emulate_http_request from student.tests.factories import CourseEnrollmentFactory, UserFactory diff --git a/lms/djangoapps/discussion/tests/test_views.py b/lms/djangoapps/discussion/tests/test_views.py index 76f18f83a6..7643f3a30a 100644 --- a/lms/djangoapps/discussion/tests/test_views.py +++ b/lms/djangoapps/discussion/tests/test_views.py @@ -14,36 +14,36 @@ from six import text_type from course_modes.models import CourseMode from course_modes.tests.factories import CourseModeFactory -from django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY -from django_comment_client.permissions import get_team -from django_comment_client.tests.group_id import ( +from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY, TYPE_SUBCATEGORY +from lms.djangoapps.discussion.django_comment_client.permissions import get_team +from lms.djangoapps.discussion.django_comment_client.tests.group_id import ( CohortedTopicGroupIdTestMixin, GroupIdAssertionMixin, NonCohortedTopicGroupIdTestMixin ) -from django_comment_client.tests.unicode import UnicodeTestMixin -from django_comment_client.tests.utils import ( +from lms.djangoapps.discussion.django_comment_client.tests.unicode import UnicodeTestMixin +from lms.djangoapps.discussion.django_comment_client.tests.utils import ( CohortedTestCase, ForumsEnableMixin, config_course_discussions, topic_name_to_id ) -from django_comment_client.utils import strip_none -from django_comment_common.models import ( - CourseDiscussionSettings, - ForumsConfig, - FORUM_ROLE_STUDENT, -) -from django_comment_common.utils import ThreadContext, seed_permissions_roles +from lms.djangoapps.discussion.django_comment_client.utils import strip_none from lms.djangoapps.courseware.exceptions import CourseAccessRedirect from lms.djangoapps.discussion import views from lms.djangoapps.discussion.views import _get_discussion_default_topic_id from lms.djangoapps.discussion.views import course_discussions_settings_handler from lms.djangoapps.teams.tests.factories import CourseTeamFactory, CourseTeamMembershipFactory -from lms.lib.comment_client.utils import CommentClientPaginatedResult from openedx.core.djangoapps.course_groups.models import CourseUserGroup from openedx.core.djangoapps.course_groups.tests.helpers import config_course_cohorts from openedx.core.djangoapps.course_groups.tests.test_views import CohortViewsTestCase +from openedx.core.djangoapps.discussion_common.comment_client.utils import CommentClientPaginatedResult +from openedx.core.djangoapps.discussion_common.models import ( + CourseDiscussionSettings, + ForumsConfig, + FORUM_ROLE_STUDENT, +) +from openedx.core.djangoapps.discussion_common.utils import ThreadContext, seed_permissions_roles from openedx.core.djangoapps.util.testing import ContentGroupTestCase from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES from openedx.features.content_type_gating.models import ContentTypeGatingConfig @@ -559,7 +559,7 @@ class SingleCohortedThreadTestCase(CohortedTestCase): self.assertRegexpMatches(html, r'"group_name": "student_cohort"') -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class SingleThreadAccessTestCase(CohortedTestCase): def call_view(self, mock_request, commentable_id, user, group_id, thread_group_id=None, pass_group_id=True): @@ -647,7 +647,7 @@ class SingleThreadAccessTestCase(CohortedTestCase): self.assertEqual(resp.status_code, 200) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class SingleThreadGroupIdTestCase(CohortedTestCase, GroupIdAssertionMixin): cs_endpoint = "/threads/dummy_thread_id" @@ -888,7 +888,7 @@ class SingleThreadContentGroupTestCase(ForumsEnableMixin, UrlResetMixin, Content self.assert_can_access(self.beta_user, self.alpha_module.discussion_id, thread_id, True) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class InlineDiscussionContextTestCase(ForumsEnableMixin, ModuleStoreTestCase): def setUp(self): @@ -925,7 +925,7 @@ class InlineDiscussionContextTestCase(ForumsEnableMixin, ModuleStoreTestCase): self.assertEqual(json_response['discussion_data'][0]['context'], ThreadContext.STANDALONE) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class InlineDiscussionGroupIdTestCase( CohortedTestCase, CohortedTopicGroupIdTestMixin, @@ -976,7 +976,7 @@ class InlineDiscussionGroupIdTestCase( ) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class ForumFormDiscussionGroupIdTestCase(CohortedTestCase, CohortedTopicGroupIdTestMixin): cs_endpoint = "/threads" @@ -1022,7 +1022,7 @@ class ForumFormDiscussionGroupIdTestCase(CohortedTestCase, CohortedTopicGroupIdT ) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class UserProfileDiscussionGroupIdTestCase(CohortedTestCase, CohortedTopicGroupIdTestMixin): cs_endpoint = "/active_threads" @@ -1183,7 +1183,7 @@ class UserProfileDiscussionGroupIdTestCase(CohortedTestCase, CohortedTopicGroupI verify_group_id_not_present(profiled_user=self.moderator, pass_group_id=False) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class FollowedThreadsDiscussionGroupIdTestCase(CohortedTestCase, CohortedTopicGroupIdTestMixin): cs_endpoint = "/subscribed_threads" @@ -1220,7 +1220,7 @@ class FollowedThreadsDiscussionGroupIdTestCase(CohortedTestCase, CohortedTopicGr ) -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class InlineDiscussionTestCase(ForumsEnableMixin, ModuleStoreTestCase): def setUp(self): @@ -1480,7 +1480,7 @@ class InlineDiscussionUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreTestCa def setUp(self): super(InlineDiscussionUnicodeTestCase, self).setUp() - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): mock_request.side_effect = make_mock_request_impl(course=self.course, text=text) request = RequestFactory().get("dummy_url") @@ -1513,7 +1513,7 @@ class ForumFormDiscussionUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreTes def setUp(self): super(ForumFormDiscussionUnicodeTestCase, self).setUp() - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): mock_request.side_effect = make_mock_request_impl(course=self.course, text=text) request = RequestFactory().get("dummy_url") @@ -1528,7 +1528,7 @@ class ForumFormDiscussionUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreTes @ddt.ddt -@patch('lms.lib.comment_client.utils.requests.request', autospec=True) +@patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) class ForumDiscussionXSSTestCase(ForumsEnableMixin, UrlResetMixin, ModuleStoreTestCase): @patch.dict("django.conf.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True}) @@ -1601,7 +1601,7 @@ class ForumDiscussionSearchUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreT def setUp(self): super(ForumDiscussionSearchUnicodeTestCase, self).setUp() - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): mock_request.side_effect = make_mock_request_impl(course=self.course, text=text) data = { @@ -1637,7 +1637,7 @@ class SingleThreadUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, def setUp(self): super(SingleThreadUnicodeTestCase, self).setUp() - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): thread_id = "test_thread_id" mock_request.side_effect = make_mock_request_impl(course=self.course, text=text, thread_id=thread_id) @@ -1670,7 +1670,7 @@ class UserProfileUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreTestCase, U def setUp(self): super(UserProfileUnicodeTestCase, self).setUp() - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): mock_request.side_effect = make_mock_request_impl(course=self.course, text=text) request = RequestFactory().get("dummy_url") @@ -1702,7 +1702,7 @@ class FollowedThreadsUnicodeTestCase(ForumsEnableMixin, SharedModuleStoreTestCas def setUp(self): super(FollowedThreadsUnicodeTestCase, self).setUp() - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def _test_unicode_data(self, text, mock_request): mock_request.side_effect = make_mock_request_impl(course=self.course, text=text) request = RequestFactory().get("dummy_url") @@ -1729,7 +1729,7 @@ class EnrollmentTestCase(ForumsEnableMixin, ModuleStoreTestCase): self.student = UserFactory.create() @patch.dict("django.conf.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True}) - @patch('lms.lib.comment_client.utils.requests.request', autospec=True) + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request', autospec=True) def test_unenrolled(self, mock_request): mock_request.side_effect = make_mock_request_impl(course=self.course, text='dummy') request = RequestFactory().get('dummy_url') @@ -2111,7 +2111,7 @@ class ThreadViewedEventTestCase(EventTestMixin, ForumsEnableMixin, UrlResetMixin self.client.login(username=self.student.username, password=PASSWORD) @patch.dict("django.conf.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True}) - @patch('lms.lib.comment_client.utils.perform_request') + @patch('openedx.core.djangoapps.discussion_common.comment_client.utils.perform_request') def test_thread_viewed_event(self, mock_perform_request): mock_perform_request.side_effect = make_mock_perform_request_impl( course=self.course, diff --git a/lms/djangoapps/discussion/views.py b/lms/djangoapps/discussion/views.py index c5de0f5be9..e4dc37fef7 100644 --- a/lms/djangoapps/discussion/views.py +++ b/lms/djangoapps/discussion/views.py @@ -23,16 +23,14 @@ from opaque_keys.edx.keys import CourseKey from rest_framework import status from web_fragments.fragment import Fragment -import django_comment_client.utils as utils -from lms.djangoapps.experiments.utils import get_experiment_user_metadata_context -import lms.lib.comment_client as cc from courseware.access import has_access from courseware.courses import get_course_with_access from courseware.views.views import CourseTabView -from django_comment_client.base.views import track_thread_viewed_event -from django_comment_client.constants import TYPE_ENTRY -from django_comment_client.permissions import get_team, has_permission -from django_comment_client.utils import ( +import lms.djangoapps.discussion.django_comment_client.utils as utils +from lms.djangoapps.discussion.django_comment_client.base.views import track_thread_viewed_event +from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY +from lms.djangoapps.discussion.django_comment_client.permissions import get_team, has_permission +from lms.djangoapps.discussion.django_comment_client.utils import ( add_courseware_context, available_division_schemes, course_discussion_division_enabled, @@ -43,8 +41,12 @@ from django_comment_client.utils import ( is_commentable_divided, strip_none ) -from django_comment_common.models import CourseDiscussionSettings -from django_comment_common.utils import ThreadContext, get_course_discussion_settings, set_course_discussion_settings +from lms.djangoapps.experiments.utils import get_experiment_user_metadata_context +import openedx.core.djangoapps.discussion_common.comment_client as cc +from openedx.core.djangoapps.discussion_common.models import CourseDiscussionSettings +from openedx.core.djangoapps.discussion_common.utils import ( + ThreadContext, get_course_discussion_settings, set_course_discussion_settings, +) from openedx.core.djangoapps.plugin_api.views import EdxFragmentView from openedx.features.course_duration_limits.access import generate_course_expired_fragment from student.models import CourseEnrollment diff --git a/lms/djangoapps/django_comment_client/base/__init__.py b/lms/djangoapps/django_comment_client/base/__init__.py deleted file mode 100644 index 99f72e3428..0000000000 --- a/lms/djangoapps/django_comment_client/base/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# This import registers the ForumThreadViewedEventTransformer -import event_transformers # pylint: disable=relative-import diff --git a/lms/djangoapps/django_comment_client/models.py b/lms/djangoapps/django_comment_client/models.py deleted file mode 100644 index 76d27be3bf..0000000000 --- a/lms/djangoapps/django_comment_client/models.py +++ /dev/null @@ -1 +0,0 @@ -# This file is intentionally blank. It has been moved to common/djangoapps/django_comment_common diff --git a/lms/djangoapps/experiments/utils.py b/lms/djangoapps/experiments/utils.py index 520a73e3a5..bc3e222871 100644 --- a/lms/djangoapps/experiments/utils.py +++ b/lms/djangoapps/experiments/utils.py @@ -7,7 +7,6 @@ import re import logging from decimal import Decimal from student.models import CourseEnrollment -from django_comment_common.models import Role from django.utils.timezone import now from lms.djangoapps.commerce.utils import EcommerceService from course_modes.models import get_cosmetic_verified_display_price, format_course_price @@ -17,6 +16,7 @@ from xmodule.partitions.partitions_service import get_user_partition_groups, get from opaque_keys.edx.keys import CourseKey from opaque_keys import InvalidKeyError from openedx.core.djangoapps.catalog.utils import get_programs +from openedx.core.djangoapps.discussion_common.models import Role from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace diff --git a/lms/djangoapps/instructor/access.py b/lms/djangoapps/instructor/access.py index eb38818e96..9043ce319d 100644 --- a/lms/djangoapps/instructor/access.py +++ b/lms/djangoapps/instructor/access.py @@ -11,7 +11,7 @@ TO DO sync instructor and staff flags import logging -from django_comment_common.models import Role +from openedx.core.djangoapps.discussion_common.models import Role from lms.djangoapps.instructor.enrollment import enroll_email, get_email_params from student.roles import CourseBetaTesterRole, CourseCcxCoachRole, CourseInstructorRole, CourseStaffRole diff --git a/lms/djangoapps/instructor/tests/test_access.py b/lms/djangoapps/instructor/tests/test_access.py index 19493950ad..8b7130f036 100644 --- a/lms/djangoapps/instructor/tests/test_access.py +++ b/lms/djangoapps/instructor/tests/test_access.py @@ -4,9 +4,9 @@ Test instructor.access import pytest -from django_comment_common.models import FORUM_ROLE_MODERATOR, Role from lms.djangoapps.instructor.access import allow_access, list_with_level, revoke_access, update_forum_role from openedx.core.djangoapps.ace_common.tests.mixins import EmailTemplateTagMixin +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_MODERATOR, Role from student.roles import CourseBetaTesterRole, CourseCcxCoachRole, CourseStaffRole from student.tests.factories import UserFactory from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index f7b045b6ca..09ded4b43c 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -42,8 +42,6 @@ from courseware.tests.factories import ( UserProfileFactory ) from courseware.tests.helpers import LoginEnrollmentTestCase -from django_comment_common.models import FORUM_ROLE_COMMUNITY_TA -from django_comment_common.utils import seed_permissions_roles from lms.djangoapps.certificates.models import CertificateStatuses from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFactory from lms.djangoapps.instructor.tests.utils import FakeContentTask, FakeEmail, FakeEmailInfo @@ -59,6 +57,8 @@ from lms.djangoapps.instructor_task.api_helper import ( generate_already_running_error_message ) from openedx.core.djangoapps.course_groups.cohorts import set_course_cohorted +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_COMMUNITY_TA +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin from openedx.core.lib.xblock_utils import grade_histogram diff --git a/lms/djangoapps/instructor/views/api.py b/lms/djangoapps/instructor/views/api.py index d4617fae8c..92837e8448 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -48,19 +48,12 @@ from bulk_email.models import BulkEmailFlag, CourseEmail from courseware.access import has_access from courseware.courses import get_course_by_id, get_course_with_access from courseware.models import StudentModule -from django_comment_client.utils import ( +from lms.djangoapps.discussion.django_comment_client.utils import ( get_course_discussion_settings, get_group_id_for_user, get_group_name, has_forum_access ) -from django_comment_common.models import ( - FORUM_ROLE_ADMINISTRATOR, - FORUM_ROLE_COMMUNITY_TA, - FORUM_ROLE_GROUP_MODERATOR, - FORUM_ROLE_MODERATOR, - Role -) from edxmako.shortcuts import render_to_string from lms.djangoapps.certificates import api as certs_api from lms.djangoapps.certificates.models import ( @@ -86,6 +79,13 @@ from lms.djangoapps.instructor_task.api_helper import AlreadyRunningError, Queue from lms.djangoapps.instructor_task.models import ReportStore from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from openedx.core.djangoapps.course_groups.cohorts import is_course_cohorted +from openedx.core.djangoapps.discussion_common.models import ( + FORUM_ROLE_ADMINISTRATOR, + FORUM_ROLE_COMMUNITY_TA, + FORUM_ROLE_GROUP_MODERATOR, + FORUM_ROLE_MODERATOR, + Role +) from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.user_api.preferences.api import get_user_preference, set_user_preference from openedx.core.djangolib.markup import HTML, Text diff --git a/lms/djangoapps/instructor/views/instructor_dashboard.py b/lms/djangoapps/instructor/views/instructor_dashboard.py index fd28558de1..d7ab82284a 100644 --- a/lms/djangoapps/instructor/views/instructor_dashboard.py +++ b/lms/djangoapps/instructor/views/instructor_dashboard.py @@ -30,8 +30,7 @@ from class_dashboard.dashboard_data import get_array_section_has_problem, get_se from course_modes.models import CourseMode, CourseModesArchive from courseware.access import has_access from courseware.courses import get_course_by_id, get_studio_url -from django_comment_client.utils import available_division_schemes, has_forum_access -from django_comment_common.models import FORUM_ROLE_ADMINISTRATOR, CourseDiscussionSettings +from lms.djangoapps.discussion.django_comment_client.utils import available_division_schemes, has_forum_access from edxmako.shortcuts import render_to_response from edx_when.api import is_enabled_for_course from lms.djangoapps.certificates import api as certs_api @@ -46,6 +45,7 @@ from lms.djangoapps.certificates.models import ( from lms.djangoapps.courseware.module_render import get_module_by_usage_id from lms.djangoapps.grades.config.waffle import WRITABLE_GRADEBOOK, waffle_flags from openedx.core.djangoapps.course_groups.cohorts import DEFAULT_COHORT_NAME, get_course_cohorts, is_course_cohorted +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_ADMINISTRATOR, CourseDiscussionSettings from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers from openedx.core.djangoapps.verified_track_content.models import VerifiedTrackCohortedCourse from openedx.core.djangolib.markup import HTML, Text diff --git a/lms/djangoapps/teams/models.py b/lms/djangoapps/teams/models.py index cb9e31379a..8285b2759a 100644 --- a/lms/djangoapps/teams/models.py +++ b/lms/djangoapps/teams/models.py @@ -15,7 +15,7 @@ from django_countries.fields import CountryField from model_utils import FieldTracker from opaque_keys.edx.django.models import CourseKeyField -from django_comment_common.signals import ( +from openedx.core.djangoapps.discussion_common.signals import ( comment_created, comment_deleted, comment_edited, @@ -82,7 +82,7 @@ def comment_endorsed_handler(sender, **kwargs): # pylint: disable=unused-argume def handle_activity(user, post, original_author_id=None): """ - Handle user activity from django_comment_client and discussion_api + Handle user activity from lms.djangoapps.discussion.django_comment_client and discussion.rest_api and update the user's last activity date. Checks if the user who performed the action is the original author, and that the discussion has the team context. diff --git a/lms/djangoapps/teams/tests/test_models.py b/lms/djangoapps/teams/tests/test_models.py index a23a2c1667..e2af0103d6 100644 --- a/lms/djangoapps/teams/tests/test_models.py +++ b/lms/djangoapps/teams/tests/test_models.py @@ -9,7 +9,7 @@ import pytz from mock import Mock from opaque_keys.edx.keys import CourseKey -from django_comment_common.signals import ( +from openedx.core.djangoapps.discussion_common.signals import ( comment_created, comment_deleted, comment_edited, diff --git a/lms/djangoapps/teams/tests/test_views.py b/lms/djangoapps/teams/tests/test_views.py index c0394f970b..5a9524ceba 100644 --- a/lms/djangoapps/teams/tests/test_views.py +++ b/lms/djangoapps/teams/tests/test_views.py @@ -18,8 +18,8 @@ from search.search_engine_base import SearchEngine from common.test.utils import skip_signal from courseware.tests.factories import StaffFactory -from django_comment_common.models import FORUM_ROLE_COMMUNITY_TA, Role -from django_comment_common.utils import seed_permissions_roles +from openedx.core.djangoapps.discussion_common.models import FORUM_ROLE_COMMUNITY_TA, Role +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from student.models import CourseEnrollment from student.tests.factories import AdminFactory, CourseEnrollmentFactory, UserFactory from util.testing import EventTestMixin diff --git a/lms/djangoapps/teams/views.py b/lms/djangoapps/teams/views.py index 5a392ec739..c03eb76d83 100644 --- a/lms/djangoapps/teams/views.py +++ b/lms/djangoapps/teams/views.py @@ -22,7 +22,7 @@ from rest_framework.views import APIView from rest_framework_oauth.authentication import OAuth2Authentication from courseware.courses import get_course_with_access, has_access -from django_comment_client.utils import has_discussion_privileges +from lms.djangoapps.discussion.django_comment_client.utils import has_discussion_privileges from lms.djangoapps.teams.models import CourseTeam, CourseTeamMembership from edx_rest_framework_extensions.paginators import DefaultPagination, paginate_search_results from openedx.core.lib.api.parsers import MergePatchParser diff --git a/lms/envs/common.py b/lms/envs/common.py index 555999d284..53a9c66ad1 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -1242,7 +1242,7 @@ MIDDLEWARE_CLASSES = [ 'mobile_api.middleware.AppVersionUpgrade', 'openedx.core.djangoapps.header_control.middleware.HeaderControlMiddleware', 'microsite_configuration.middleware.MicrositeMiddleware', - 'django_comment_client.middleware.AjaxExceptionMiddleware', + 'lms.djangoapps.discussion.django_comment_client.middleware.AjaxExceptionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sites.middleware.CurrentSiteMiddleware', 'edx_rest_framework_extensions.auth.jwt.middleware.JwtAuthCookieMiddleware', @@ -1291,7 +1291,7 @@ MIDDLEWARE_CLASSES = [ # Must be after DarkLangMiddleware. 'django.middleware.locale.LocaleMiddleware', - 'django_comment_client.utils.ViewNameMiddleware', + 'lms.djangoapps.discussion.django_comment_client.utils.ViewNameMiddleware', 'codejail.django_integration.ConfigureCodeJailMiddleware', # catches any uncaught RateLimitExceptions and returns a 403 instead of a 500 @@ -2123,9 +2123,7 @@ INSTALLED_APPS = [ 'openedx.core.djangoapps.util.apps.UtilConfig', # Discussion forums - 'django_comment_client', - 'django_comment_common', - 'discussion_api', + 'openedx.core.djangoapps.discussion_common', # Notes 'notes', @@ -2141,11 +2139,6 @@ INSTALLED_APPS = [ # Shopping cart 'shoppingcart', - # Notification preferences setting - 'notification_prefs', - - 'notifier_api', - # Different Course Modes 'course_modes.apps.CourseModesConfig', diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py index 9e523eed7d..e7f737a4ae 100644 --- a/lms/envs/devstack.py +++ b/lms/envs/devstack.py @@ -36,7 +36,7 @@ import logging LOG_OVERRIDES = [ ('track.contexts', logging.CRITICAL), ('track.middleware', logging.CRITICAL), - ('django_comment_client.utils', logging.CRITICAL), + ('lms.djangoapps.discussion.django_comment_client.utils', logging.CRITICAL), ] for log_name, log_level in LOG_OVERRIDES: logging.getLogger(log_name).setLevel(log_level) @@ -60,7 +60,7 @@ DJFS = { INSTALLED_APPS += ['debug_toolbar', 'debug_toolbar_mongo'] MIDDLEWARE_CLASSES += [ - 'django_comment_client.utils.QueryCountDebugMiddleware', + 'lms.djangoapps.discussion.django_comment_client.utils.QueryCountDebugMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', ] diff --git a/lms/lib/comment_client/README.rst b/lms/lib/comment_client/README.rst deleted file mode 100644 index 80e9568232..0000000000 --- a/lms/lib/comment_client/README.rst +++ /dev/null @@ -1 +0,0 @@ -See ``lms/djangoapps/discussion/README.rst`` diff --git a/lms/templates/discussion/_filter_dropdown.html b/lms/templates/discussion/_filter_dropdown.html index 03fcfffc4c..fa04ac8eb8 100644 --- a/lms/templates/discussion/_filter_dropdown.html +++ b/lms/templates/discussion/_filter_dropdown.html @@ -1,7 +1,7 @@ <%page expression_filter="h"/> <%! from django.utils.translation import ugettext as _ -from lms.djangoapps.django_comment_client.constants import TYPE_ENTRY +from lms.djangoapps.discussion.django_comment_client.constants import TYPE_ENTRY from openedx.core.djangolib.markup import HTML %> diff --git a/lms/urls.py b/lms/urls.py index 5f5febae7e..dd32256fe0 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -18,21 +18,21 @@ from courseware.views import views as courseware_views from courseware.views.index import CoursewareIndex from courseware.views.views import CourseTabView, EnrollStaffView, StaticCourseTabView from debug import views as debug_views -from django_comment_common.models import ForumsConfig from lms.djangoapps.certificates import views as certificates_views from lms.djangoapps.discussion import views as discussion_views +from lms.djangoapps.discussion.notification_prefs import views as notification_prefs_views from lms.djangoapps.instructor.views import coupons as instructor_coupons_views from lms.djangoapps.instructor.views import instructor_dashboard as instructor_dashboard_views from lms.djangoapps.instructor.views import registration_codes as instructor_registration_codes_views from lms.djangoapps.instructor_task import views as instructor_task_views from notes import views as notes_views -from notification_prefs import views as notification_prefs_views from openedx.core.djangoapps.auth_exchange.views import LoginWithAccessTokenView from openedx.core.djangoapps.catalog.models import CatalogIntegration from openedx.core.djangoapps.common_views.xblock import xblock_resource from openedx.core.djangoapps.cors_csrf import views as cors_csrf_views from openedx.core.djangoapps.course_groups import views as course_groups_views from openedx.core.djangoapps.debug import views as openedx_debug_views +from openedx.core.djangoapps.discussion_common.models import ForumsConfig from openedx.core.djangoapps.lang_pref import views as lang_pref_views from openedx.core.djangoapps.password_policy import compliance as password_policy_compliance from openedx.core.djangoapps.password_policy.forms import PasswordPolicyAwareAdminAuthForm @@ -84,7 +84,7 @@ urlpatterns = [ # subsumed by api/user listed below. url(r'^user_api/', include('openedx.core.djangoapps.user_api.legacy_urls')), - url(r'^notifier_api/', include('notifier_api.urls')), + url(r'^notifier_api/', include('lms.djangoapps.discussion.notifier_api.urls')), url(r'^i18n/', include('django.conf.urls.i18n')), @@ -704,13 +704,13 @@ if settings.FEATURES.get('ENABLE_DISCUSSION_SERVICE'): urlpatterns += [ url( r'^api/discussion/', - include('discussion_api.urls') + include('discussion.rest_api.urls') ), url( r'^courses/{}/discussion/'.format( settings.COURSE_ID_PATTERN, ), - include('django_comment_client.urls') + include('lms.djangoapps.discussion.django_comment_client.urls') ), url( r'^notification_prefs/enable/', diff --git a/openedx/core/djangoapps/content/course_overviews/models.py b/openedx/core/djangoapps/content/course_overviews/models.py index 96f2334302..722f665588 100644 --- a/openedx/core/djangoapps/content/course_overviews/models.py +++ b/openedx/core/djangoapps/content/course_overviews/models.py @@ -17,7 +17,7 @@ from opaque_keys.edx.django.models import CourseKeyField, UsageKeyField from six import text_type from config_models.models import ConfigurationModel -from lms.djangoapps import django_comment_client +from lms.djangoapps.discussion import django_comment_client from openedx.core.djangoapps.catalog.models import CatalogIntegration from openedx.core.djangoapps.lang_pref.api import get_closest_released_language from openedx.core.djangoapps.models.course_details import CourseDetails diff --git a/openedx/core/djangoapps/course_groups/tests/helpers.py b/openedx/core/djangoapps/course_groups/tests/helpers.py index b3d27db08a..ac6648a943 100644 --- a/openedx/core/djangoapps/course_groups/tests/helpers.py +++ b/openedx/core/djangoapps/course_groups/tests/helpers.py @@ -10,8 +10,8 @@ from factory import Sequence, post_generation from factory.django import DjangoModelFactory from opaque_keys.edx.locator import CourseLocator -from django_comment_common.models import CourseDiscussionSettings -from django_comment_common.utils import set_course_discussion_settings +from openedx.core.djangoapps.discussion_common.models import CourseDiscussionSettings +from openedx.core.djangoapps.discussion_common.utils import set_course_discussion_settings from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.django import modulestore diff --git a/openedx/core/djangoapps/course_groups/tests/test_views.py b/openedx/core/djangoapps/course_groups/tests/test_views.py index f158670ffe..8c55150afc 100644 --- a/openedx/core/djangoapps/course_groups/tests/test_views.py +++ b/openedx/core/djangoapps/course_groups/tests/test_views.py @@ -15,8 +15,8 @@ from django.http import Http404 from django.test.client import RequestFactory from opaque_keys.edx.locator import CourseLocator -from django_comment_common.models import CourseDiscussionSettings -from django_comment_common.utils import get_course_discussion_settings +from openedx.core.djangoapps.discussion_common.models import CourseDiscussionSettings +from openedx.core.djangoapps.discussion_common.utils import get_course_discussion_settings from lms.djangoapps.courseware.tests.factories import InstructorFactory, StaffFactory from student.models import CourseEnrollment from student.tests.factories import UserFactory diff --git a/lms/djangoapps/notification_prefs/README.rst b/openedx/core/djangoapps/discussion_common/README.rst similarity index 100% rename from lms/djangoapps/notification_prefs/README.rst rename to openedx/core/djangoapps/discussion_common/README.rst diff --git a/lms/djangoapps/notification_prefs/features/__init__.py b/openedx/core/djangoapps/discussion_common/__init__.py similarity index 100% rename from lms/djangoapps/notification_prefs/features/__init__.py rename to openedx/core/djangoapps/discussion_common/__init__.py diff --git a/common/djangoapps/django_comment_common/admin.py b/openedx/core/djangoapps/discussion_common/admin.py similarity index 100% rename from common/djangoapps/django_comment_common/admin.py rename to openedx/core/djangoapps/discussion_common/admin.py diff --git a/lms/djangoapps/notifier_api/README.rst b/openedx/core/djangoapps/discussion_common/comment_client/README.rst similarity index 100% rename from lms/djangoapps/notifier_api/README.rst rename to openedx/core/djangoapps/discussion_common/comment_client/README.rst diff --git a/lms/lib/comment_client/__init__.py b/openedx/core/djangoapps/discussion_common/comment_client/__init__.py similarity index 75% rename from lms/lib/comment_client/__init__.py rename to openedx/core/djangoapps/discussion_common/comment_client/__init__.py index bd8187ecfc..6f0222e54d 100644 --- a/lms/lib/comment_client/__init__.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/__init__.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring,wildcard-import from .comment_client import * from .utils import ( CommentClientError, CommentClientRequestError, diff --git a/lms/lib/comment_client/comment.py b/openedx/core/djangoapps/discussion_common/comment_client/comment.py similarity index 91% rename from lms/lib/comment_client/comment.py rename to openedx/core/djangoapps/discussion_common/comment_client/comment.py index d0b23eadc4..8aef2a01ec 100644 --- a/lms/lib/comment_client/comment.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/comment.py @@ -1,4 +1,5 @@ -from lms.lib.comment_client import models, settings +# pylint: disable=missing-docstring,protected-access +from openedx.core.djangoapps.discussion_common.comment_client import models, settings from .thread import Thread, _url_for_flag_abuse_thread, _url_for_unflag_abuse_thread from .utils import CommentClientRequestError, perform_request @@ -42,14 +43,16 @@ class Comment(models.Model): return self.thread.context @classmethod - def url_for_comments(cls, params={}): - if params.get('parent_id'): + def url_for_comments(cls, params=None): + if params and params.get('parent_id'): return _url_for_comment(params['parent_id']) else: return _url_for_thread_comments(params['thread_id']) @classmethod - def url(cls, action, params={}): + def url(cls, action, params=None): + if params is None: + params = {} if action in ['post']: return cls.url_for_comments(params) else: diff --git a/lms/lib/comment_client/comment_client.py b/openedx/core/djangoapps/discussion_common/comment_client/comment_client.py similarity index 100% rename from lms/lib/comment_client/comment_client.py rename to openedx/core/djangoapps/discussion_common/comment_client/comment_client.py diff --git a/lms/lib/comment_client/commentable.py b/openedx/core/djangoapps/discussion_common/comment_client/commentable.py similarity index 80% rename from lms/lib/comment_client/commentable.py rename to openedx/core/djangoapps/discussion_common/comment_client/commentable.py index 5a5a1f9113..bbe71fbbbd 100644 --- a/lms/lib/comment_client/commentable.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/commentable.py @@ -1,5 +1,6 @@ +# pylint: disable=missing-docstring """Provides base Commentable model class""" -from lms.lib.comment_client import models, settings +from openedx.core.djangoapps.discussion_common.comment_client import models, settings class Commentable(models.Model): diff --git a/lms/lib/comment_client/models.py b/openedx/core/djangoapps/discussion_common/comment_client/models.py similarity index 92% rename from lms/lib/comment_client/models.py rename to openedx/core/djangoapps/discussion_common/comment_client/models.py index 35a781bb07..7b0d2e2cd9 100644 --- a/lms/lib/comment_client/models.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/models.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring,unused-argument import logging from .utils import CommentClientRequestError, extract, perform_request @@ -94,7 +95,7 @@ class Model(object): return tags @classmethod - def find(cls, id): + def find(cls, id): # pylint: disable=redefined-builtin return cls(id=id) def _update_from_response(self, response_data): @@ -160,19 +161,25 @@ class Model(object): self._update_from_response(response) @classmethod - def url_with_id(cls, params={}): + def url_with_id(cls, params=None): + if params is None: + params = {} return cls.base_url + '/' + str(params['id']) @classmethod - def url_without_id(cls, params={}): + def url_without_id(cls, params=None): return cls.base_url @classmethod - def url(cls, action, params={}): + def url(cls, action, params=None): + if params is None: + params = {} if cls.base_url is None: raise CommentClientRequestError("Must provide base_url when using default url function") if action not in cls.DEFAULT_ACTIONS: - raise ValueError(u"Invalid action {0}. The supported action must be in {1}".format(action, str(cls.DEFAULT_ACTIONS))) + raise ValueError( + u"Invalid action {0}. The supported action must be in {1}".format(action, str(cls.DEFAULT_ACTIONS)) + ) elif action in cls.DEFAULT_ACTIONS_WITH_ID: try: return cls.url_with_id(params) diff --git a/lms/lib/comment_client/requirements.txt b/openedx/core/djangoapps/discussion_common/comment_client/requirements.txt similarity index 100% rename from lms/lib/comment_client/requirements.txt rename to openedx/core/djangoapps/discussion_common/comment_client/requirements.txt diff --git a/lms/lib/comment_client/settings.py b/openedx/core/djangoapps/discussion_common/comment_client/settings.py similarity index 85% rename from lms/lib/comment_client/settings.py rename to openedx/core/djangoapps/discussion_common/comment_client/settings.py index f64726335f..1d3f224b41 100644 --- a/lms/lib/comment_client/settings.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/settings.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring from django.conf import settings if hasattr(settings, "COMMENTS_SERVICE_URL"): diff --git a/lms/lib/comment_client/thread.py b/openedx/core/djangoapps/discussion_common/comment_client/thread.py similarity index 91% rename from lms/lib/comment_client/thread.py rename to openedx/core/djangoapps/discussion_common/comment_client/thread.py index a73c6f5ec7..d45a385f9e 100644 --- a/lms/lib/comment_client/thread.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/thread.py @@ -1,11 +1,11 @@ +# pylint: disable=missing-docstring,protected-access import logging -import settings - -import models from eventtracking import tracker +from . import models +from . import settings +from . import utils -import utils log = logging.getLogger(__name__) @@ -93,7 +93,8 @@ class Thread(models.Model): } ) log.info( - u'forum_text_search query="{search_query}" corrected_text="{corrected_text}" course_id={course_id} group_id={group_id} page={requested_page} total_results={total_results}'.format( + u'forum_text_search query="{search_query}" corrected_text="{corrected_text}" course_id={course_id} ' + u'group_id={group_id} page={requested_page} total_results={total_results}'.format( search_query=search_query, corrected_text=corrected_text, course_id=course_id, @@ -112,23 +113,27 @@ class Thread(models.Model): ) @classmethod - def url_for_threads(cls, params={}): - if params.get('commentable_id'): - return u"{prefix}/{commentable_id}/threads".format(prefix=settings.PREFIX, commentable_id=params['commentable_id']) + def url_for_threads(cls, params=None): + if params and params.get('commentable_id'): + return u"{prefix}/{commentable_id}/threads".format( + prefix=settings.PREFIX, + commentable_id=params['commentable_id'], + ) else: return u"{prefix}/threads".format(prefix=settings.PREFIX) @classmethod - def url_for_search_threads(cls, params={}): + def url_for_search_threads(cls): return "{prefix}/search/threads".format(prefix=settings.PREFIX) @classmethod - def url(cls, action, params={}): - + def url(cls, action, params=None): + if params is None: + params = {} if action in ['get_all', 'post']: return cls.url_for_threads(params) elif action == 'search': - return cls.url_for_search_threads(params) + return cls.url_for_search_threads() else: return super(Thread, cls).url(action, params) @@ -159,8 +164,6 @@ class Thread(models.Model): def flagAbuse(self, user, voteable): if voteable.type == 'thread': url = _url_for_flag_abuse_thread(voteable.id) - elif voteable.type == 'comment': - url = _url_for_flag_comment(voteable.id) else: raise utils.CommentClientRequestError("Can only flag/unflag threads or comments") params = {'user_id': user.id} @@ -176,8 +179,6 @@ class Thread(models.Model): def unFlagAbuse(self, user, voteable, removeAll): if voteable.type == 'thread': url = _url_for_unflag_abuse_thread(voteable.id) - elif voteable.type == 'comment': - url = _url_for_unflag_comment(voteable.id) else: raise utils.CommentClientRequestError("Can only flag/unflag for threads or comments") params = {'user_id': user.id} diff --git a/lms/lib/comment_client/user.py b/openedx/core/djangoapps/discussion_common/comment_client/user.py similarity index 93% rename from lms/lib/comment_client/user.py rename to openedx/core/djangoapps/discussion_common/comment_client/user.py index a007bd1d75..d6b6891454 100644 --- a/lms/lib/comment_client/user.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/user.py @@ -1,9 +1,10 @@ +# pylint: disable=missing-docstring,protected-access """ User model wrapper for comment service""" from six import text_type -import settings -import models -import utils +from . import models +from . import settings +from . import utils class User(models.Model): @@ -46,7 +47,7 @@ class User(models.Model): def follow(self, source): params = {'source_type': source.type, 'source_id': source.id} - response = utils.perform_request( + utils.perform_request( 'post', _url_for_subscription(self.id), params, @@ -56,7 +57,7 @@ class User(models.Model): def unfollow(self, source): params = {'source_type': source.type, 'source_id': source.id} - response = utils.perform_request( + utils.perform_request( 'delete', _url_for_subscription(self.id), params, @@ -98,7 +99,9 @@ class User(models.Model): ) voteable._update_from_response(response) - def active_threads(self, query_params={}): + def active_threads(self, query_params=None): + if query_params is None: + query_params = {} if not self.course_id: raise utils.CommentClientRequestError("Must provide course_id when retrieving active threads for the user") url = _url_for_user_active_threads(self.id) @@ -114,9 +117,13 @@ class User(models.Model): ) return response.get('collection', []), response.get('page', 1), response.get('num_pages', 1) - def subscribed_threads(self, query_params={}): + def subscribed_threads(self, query_params=None): + if query_params is None: + query_params = {} if not self.course_id: - raise utils.CommentClientRequestError("Must provide course_id when retrieving subscribed threads for the user") + raise utils.CommentClientRequestError( + "Must provide course_id when retrieving subscribed threads for the user", + ) url = _url_for_user_subscribed_threads(self.id) params = {'course_id': text_type(self.course_id)} params.update(query_params) diff --git a/lms/lib/comment_client/utils.py b/openedx/core/djangoapps/discussion_common/comment_client/utils.py similarity index 95% rename from lms/lib/comment_client/utils.py rename to openedx/core/djangoapps/discussion_common/comment_client/utils.py index 86e3b8c65e..261b5e2a28 100644 --- a/lms/lib/comment_client/utils.py +++ b/openedx/core/djangoapps/discussion_common/comment_client/utils.py @@ -1,7 +1,6 @@ +# pylint: disable=missing-docstring,unused-argument,broad-except """" Common utilities for comment client wrapper """ import logging -from contextlib import contextmanager -from time import time from uuid import uuid4 import requests @@ -32,7 +31,7 @@ def extract(dic, keys): def perform_request(method, url, data_or_params=None, raw=False, metric_action=None, metric_tags=None, paged_results=False): # To avoid dependency conflict - from django_comment_common.models import ForumsConfig + from openedx.core.djangoapps.discussion_common.models import ForumsConfig config = ForumsConfig.current() if not config.enabled: @@ -135,7 +134,7 @@ def check_forum_heartbeat(): This function can be connected to the LMS heartbeat checker through the HEARTBEAT_CHECKS variable. """ # To avoid dependency conflict - from django_comment_common.models import ForumsConfig + from openedx.core.djangoapps.discussion_common.models import ForumsConfig config = ForumsConfig.current() if not config.enabled: diff --git a/common/djangoapps/django_comment_common/migrations/0001_initial.py b/openedx/core/djangoapps/discussion_common/migrations/0001_initial.py similarity index 97% rename from common/djangoapps/django_comment_common/migrations/0001_initial.py rename to openedx/core/djangoapps/discussion_common/migrations/0001_initial.py index 4d56903c1d..6162c89c06 100644 --- a/common/djangoapps/django_comment_common/migrations/0001_initial.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0001_initial.py @@ -37,6 +37,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='permission', name='roles', - field=models.ManyToManyField(related_name='permissions', to='django_comment_common.Role'), + field=models.ManyToManyField(related_name='permissions', to='discussion_common.Role'), ), ] diff --git a/common/djangoapps/django_comment_common/migrations/0002_forumsconfig.py b/openedx/core/djangoapps/discussion_common/migrations/0002_forumsconfig.py similarity index 90% rename from common/djangoapps/django_comment_common/migrations/0002_forumsconfig.py rename to openedx/core/djangoapps/discussion_common/migrations/0002_forumsconfig.py index c4c24e8586..2e0e1ca740 100644 --- a/common/djangoapps/django_comment_common/migrations/0002_forumsconfig.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0002_forumsconfig.py @@ -10,7 +10,7 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('django_comment_common', '0001_initial'), + ('discussion_common', '0001_initial'), ] operations = [ @@ -26,6 +26,7 @@ class Migration(migrations.Migration): options={ 'ordering': ('-change_date',), 'abstract': False, + 'db_table': 'django_comment_common_forumsconfig', }, ), ] diff --git a/common/djangoapps/django_comment_common/migrations/0003_enable_forums.py b/openedx/core/djangoapps/discussion_common/migrations/0003_enable_forums.py similarity index 93% rename from common/djangoapps/django_comment_common/migrations/0003_enable_forums.py rename to openedx/core/djangoapps/discussion_common/migrations/0003_enable_forums.py index 065468dc98..f515484f5e 100644 --- a/common/djangoapps/django_comment_common/migrations/0003_enable_forums.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0003_enable_forums.py @@ -22,7 +22,7 @@ def reverse_noop(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('django_comment_common', '0002_forumsconfig'), + ('discussion_common', '0002_forumsconfig'), ] operations = [ diff --git a/common/djangoapps/django_comment_common/migrations/0004_auto_20161117_1209.py b/openedx/core/djangoapps/discussion_common/migrations/0004_auto_20161117_1209.py similarity index 88% rename from common/djangoapps/django_comment_common/migrations/0004_auto_20161117_1209.py rename to openedx/core/djangoapps/discussion_common/migrations/0004_auto_20161117_1209.py index fe49d518ed..93518bbfda 100644 --- a/common/djangoapps/django_comment_common/migrations/0004_auto_20161117_1209.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0004_auto_20161117_1209.py @@ -7,7 +7,7 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('django_comment_common', '0003_enable_forums'), + ('discussion_common', '0003_enable_forums'), ] operations = [ diff --git a/common/djangoapps/django_comment_common/migrations/0005_coursediscussionsettings.py b/openedx/core/djangoapps/discussion_common/migrations/0005_coursediscussionsettings.py similarity index 85% rename from common/djangoapps/django_comment_common/migrations/0005_coursediscussionsettings.py rename to openedx/core/djangoapps/discussion_common/migrations/0005_coursediscussionsettings.py index 0b8eca4336..9e3703662d 100644 --- a/common/djangoapps/django_comment_common/migrations/0005_coursediscussionsettings.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0005_coursediscussionsettings.py @@ -8,7 +8,7 @@ from opaque_keys.edx.django.models import CourseKeyField class Migration(migrations.Migration): dependencies = [ - ('django_comment_common', '0004_auto_20161117_1209'), + ('discussion_common', '0004_auto_20161117_1209'), ] operations = [ @@ -21,5 +21,8 @@ class Migration(migrations.Migration): ('_divided_discussions', models.TextField(null=True, db_column=b'divided_discussions', blank=True)), ('division_scheme', models.CharField(default=b'none', max_length=20, choices=[(b'none', b'None'), (b'cohort', b'Cohort'), (b'enrollment_track', b'Enrollment Track')])), ], + options={ + 'db_table': 'django_comment_common_coursediscussionsettings', + }, ), ] diff --git a/common/djangoapps/django_comment_common/migrations/0006_coursediscussionsettings_discussions_id_map.py b/openedx/core/djangoapps/discussion_common/migrations/0006_coursediscussionsettings_discussions_id_map.py similarity index 89% rename from common/djangoapps/django_comment_common/migrations/0006_coursediscussionsettings_discussions_id_map.py rename to openedx/core/djangoapps/discussion_common/migrations/0006_coursediscussionsettings_discussions_id_map.py index 6891133e65..ed82051eee 100644 --- a/common/djangoapps/django_comment_common/migrations/0006_coursediscussionsettings_discussions_id_map.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0006_coursediscussionsettings_discussions_id_map.py @@ -9,7 +9,7 @@ import jsonfield.fields class Migration(migrations.Migration): dependencies = [ - ('django_comment_common', '0005_coursediscussionsettings'), + ('discussion_common', '0005_coursediscussionsettings'), ] operations = [ diff --git a/common/djangoapps/django_comment_common/migrations/0007_discussionsidmapping.py b/openedx/core/djangoapps/discussion_common/migrations/0007_discussionsidmapping.py similarity index 78% rename from common/djangoapps/django_comment_common/migrations/0007_discussionsidmapping.py rename to openedx/core/djangoapps/discussion_common/migrations/0007_discussionsidmapping.py index c41d9cebe3..2ec0d03496 100644 --- a/common/djangoapps/django_comment_common/migrations/0007_discussionsidmapping.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0007_discussionsidmapping.py @@ -10,7 +10,7 @@ import opaque_keys.edx.django.models class Migration(migrations.Migration): dependencies = [ - ('django_comment_common', '0006_coursediscussionsettings_discussions_id_map'), + ('discussion_common', '0006_coursediscussionsettings_discussions_id_map'), ] operations = [ @@ -20,5 +20,8 @@ class Migration(migrations.Migration): ('course_id', opaque_keys.edx.django.models.CourseKeyField(db_index=True, max_length=255, primary_key=True, serialize=False)), ('mapping', jsonfield.fields.JSONField(help_text=b'Key/value store mapping discussion IDs to discussion XBlock usage keys.')), ], + options={ + 'db_table': 'django_comment_common_discussionsidmapping', + }, ), ] diff --git a/common/djangoapps/django_comment_common/migrations/0008_role_user_index.py b/openedx/core/djangoapps/discussion_common/migrations/0008_role_user_index.py similarity index 84% rename from common/djangoapps/django_comment_common/migrations/0008_role_user_index.py rename to openedx/core/djangoapps/discussion_common/migrations/0008_role_user_index.py index 5624c9b918..f3798195ea 100644 --- a/common/djangoapps/django_comment_common/migrations/0008_role_user_index.py +++ b/openedx/core/djangoapps/discussion_common/migrations/0008_role_user_index.py @@ -7,7 +7,7 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('django_comment_common', '0007_discussionsidmapping'), + ('discussion_common', '0007_discussionsidmapping'), ] operations = [ diff --git a/lms/djangoapps/notifier_api/__init__.py b/openedx/core/djangoapps/discussion_common/migrations/__init__.py similarity index 100% rename from lms/djangoapps/notifier_api/__init__.py rename to openedx/core/djangoapps/discussion_common/migrations/__init__.py diff --git a/common/djangoapps/django_comment_common/models.py b/openedx/core/djangoapps/discussion_common/models.py similarity index 90% rename from common/djangoapps/django_comment_common/models.py rename to openedx/core/djangoapps/discussion_common/models.py index 7d9d56aef4..cf05019ce4 100644 --- a/common/djangoapps/django_comment_common/models.py +++ b/openedx/core/djangoapps/discussion_common/models.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-docstring,unused-argument,model-missing-unicode import json import logging @@ -60,7 +61,7 @@ def assign_role(course_id, user, rolename): """ role, created = Role.objects.get_or_create(course_id=course_id, name=rolename) if created: - logging.info("EDUCATOR-1635: Created role {} for course {}".format(role, course_id)) + logging.info(u"EDUCATOR-1635: Created role {} for course {}".format(role, course_id)) user.roles.add(role) @@ -78,11 +79,10 @@ class Role(models.Model): course_id = CourseKeyField(max_length=255, blank=True, db_index=True) class Meta(object): - # use existing table that was originally created from django_comment_client app + # use existing table that was originally created from lms.djangoapps.discussion.django_comment_client app db_table = 'django_comment_client_role' def __unicode__(self): - # pylint: disable=no-member return self.name + " for " + (text_type(self.course_id) if self.course_id else "all courses") # TODO the name of this method is a little bit confusing, @@ -94,7 +94,7 @@ class Role(models.Model): """ if role.course_id and role.course_id != self.course_id: logging.warning( - "%s cannot inherit permissions from %s due to course_id inconsistency", + u"%s cannot inherit permissions from %s due to course_id inconsistency", self, role, ) @@ -134,7 +134,7 @@ class Permission(models.Model): roles = models.ManyToManyField(Role, related_name="permissions") class Meta(object): - # use existing table that was originally created from django_comment_client app + # use existing table that was originally created from lms.djangoapps.discussion.django_comment_client app db_table = 'django_comment_client_permission' def __unicode__(self): @@ -157,7 +157,7 @@ def permission_blacked_out(course, role_names, permission_name): ) -def all_permissions_for_user_in_course(user, course_id): # pylint: disable=invalid-name +def all_permissions_for_user_in_course(user, course_id): """ Returns all the permissions the user has in the given course. """ @@ -181,7 +181,7 @@ def all_permissions_for_user_in_course(user, course_id): # pylint: disable=inva permission_names.add(permission.name) # Prevent a circular import - from django_comment_common.utils import GLOBAL_STAFF_ROLE_PERMISSIONS + from openedx.core.djangoapps.discussion_common.utils import GLOBAL_STAFF_ROLE_PERMISSIONS if GlobalStaff().has_user(user): for permission in GLOBAL_STAFF_ROLE_PERMISSIONS: @@ -202,6 +202,10 @@ class ForumsConfig(ConfigurationModel): help_text="Seconds to wait when trying to connect to the comment service.", ) + class Meta(ConfigurationModel.Meta): + # use existing table that was originally created from django_comment_common app + db_table = 'django_comment_common_forumsconfig' + @property def api_key(self): """The API key used to authenticate to the comments service.""" @@ -240,6 +244,10 @@ class CourseDiscussionSettings(models.Model): ASSIGNMENT_TYPE_CHOICES = ((NONE, 'None'), (COHORT, 'Cohort'), (ENROLLMENT_TRACK, 'Enrollment Track')) division_scheme = models.CharField(max_length=20, choices=ASSIGNMENT_TYPE_CHOICES, default=NONE) + class Meta(object): + # use existing table that was originally created from django_comment_common app + db_table = 'django_comment_common_coursediscussionsettings' + @property def divided_discussions(self): """ @@ -266,6 +274,10 @@ class DiscussionsIdMapping(models.Model): help_text="Key/value store mapping discussion IDs to discussion XBlock usage keys.", ) + class Meta(object): + # use existing table that was originally created from django_comment_common app + db_table = 'django_comment_common_discussionsidmapping' + @classmethod def update_mapping(cls, course_key, discussions_id_map): """Update the mapping of discussions IDs to XBlock usage key strings.""" diff --git a/common/djangoapps/django_comment_common/signals.py b/openedx/core/djangoapps/discussion_common/signals.py similarity index 100% rename from common/djangoapps/django_comment_common/signals.py rename to openedx/core/djangoapps/discussion_common/signals.py diff --git a/common/djangoapps/django_comment_common/tests.py b/openedx/core/djangoapps/discussion_common/tests.py similarity index 95% rename from common/djangoapps/django_comment_common/tests.py rename to openedx/core/djangoapps/discussion_common/tests.py index 23ef3e05e5..a6d29bb9bf 100644 --- a/common/djangoapps/django_comment_common/tests.py +++ b/openedx/core/djangoapps/discussion_common/tests.py @@ -1,12 +1,14 @@ +# pylint: disable=missing-docstring from django.test import TestCase from opaque_keys.edx.locator import CourseLocator from six import text_type -from django_comment_common.models import Role -from models import CourseDiscussionSettings from openedx.core.djangoapps.course_groups.cohorts import CourseCohortsSettings +from openedx.core.djangoapps.discussion_common.models import Role, CourseDiscussionSettings +from openedx.core.djangoapps.discussion_common.utils import ( + get_course_discussion_settings, set_course_discussion_settings, +) from student.models import CourseEnrollment, User -from utils import get_course_discussion_settings, set_course_discussion_settings from xmodule.modulestore import ModuleStoreEnum from xmodule.modulestore.django import modulestore from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase diff --git a/common/djangoapps/django_comment_common/utils.py b/openedx/core/djangoapps/discussion_common/utils.py similarity index 95% rename from common/djangoapps/django_comment_common/utils.py rename to openedx/core/djangoapps/discussion_common/utils.py index 06b73fc5e5..c24dfe8cac 100644 --- a/common/djangoapps/django_comment_common/utils.py +++ b/openedx/core/djangoapps/discussion_common/utils.py @@ -1,8 +1,9 @@ +# pylint: disable=missing-docstring """ Common comment client utility functions. """ -from django_comment_common.models import ( +from openedx.core.djangoapps.discussion_common.models import ( CourseDiscussionSettings, FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_COMMUNITY_TA, @@ -89,7 +90,7 @@ def are_permissions_roles_seeded(course_id): moderator_role = Role.objects.get(name=FORUM_ROLE_MODERATOR, course_id=course_id) group_moderator_role = Role.objects.get(name=FORUM_ROLE_GROUP_MODERATOR, course_id=course_id) student_role = Role.objects.get(name=FORUM_ROLE_STUDENT, course_id=course_id) - except: + except: # pylint: disable=bare-except return False for per in STUDENT_ROLE_PERMISSIONS: @@ -153,7 +154,7 @@ def set_course_discussion_settings(course_key, **kwargs): for field, field_type in fields.items(): if field in kwargs: if not isinstance(kwargs[field], field_type): - raise ValueError("Incorrect field type for `{}`. Type must be `{}`".format(field, field_type.__name__)) + raise ValueError(u"Incorrect field type for `{}`. Type must be `{}`".format(field, field_type.__name__)) setattr(course_discussion_settings, field, kwargs[field]) course_discussion_settings.save() diff --git a/openedx/core/djangoapps/user_api/tests/test_views.py b/openedx/core/djangoapps/user_api/tests/test_views.py index 130c82c99a..bd3103946b 100644 --- a/openedx/core/djangoapps/user_api/tests/test_views.py +++ b/openedx/core/djangoapps/user_api/tests/test_views.py @@ -19,7 +19,7 @@ from pytz import common_timezones_set, UTC from six import text_type from social_django.models import UserSocialAuth, Partial -from django_comment_common import models +from openedx.core.djangoapps.discussion_common import models from openedx.core.djangoapps.site_configuration.helpers import get_value from openedx.core.lib.api.test_utils import ApiTestCase, TEST_API_KEY from openedx.core.lib.time_zone_utils import get_display_time_zone diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index fa526482ff..786dd43b44 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -15,12 +15,13 @@ from rest_framework.views import APIView from rest_framework.permissions import IsAuthenticated from six import text_type -import accounts -from django_comment_common.models import Role from edx_rest_framework_extensions.auth.session.authentication import SessionAuthenticationAllowInactiveUser from opaque_keys import InvalidKeyError from opaque_keys.edx import locator from opaque_keys.edx.keys import CourseKey + +from openedx.core.djangoapps.discussion_common.models import Role +from openedx.core.djangoapps.user_api import accounts from openedx.core.djangoapps.user_api.accounts.api import check_account_exists from openedx.core.djangoapps.user_api.api import ( RegistrationFormFactory, diff --git a/openedx/core/djangoapps/user_authn/views/auto_auth.py b/openedx/core/djangoapps/user_authn/views/auto_auth.py index 69ba2d6775..5a06d4399a 100644 --- a/openedx/core/djangoapps/user_authn/views/auto_auth.py +++ b/openedx/core/djangoapps/user_authn/views/auto_auth.py @@ -12,10 +12,10 @@ from django.http import HttpResponseForbidden from django.shortcuts import redirect from django.template.context_processors import csrf from django.utils.translation import ugettext as _ -from django_comment_common.models import assign_role from lms.djangoapps.verify_student.models import ManualVerification from opaque_keys.edx.locator import CourseLocator +from openedx.core.djangoapps.discussion_common.models import assign_role from openedx.core.djangoapps.user_api.accounts.utils import generate_password from openedx.features.course_experience import course_home_url_name from student.forms import AccountCreationForm diff --git a/openedx/core/djangoapps/user_authn/views/register.py b/openedx/core/djangoapps/user_authn/views/register.py index f969bf92ab..43ee1acf82 100644 --- a/openedx/core/djangoapps/user_authn/views/register.py +++ b/openedx/core/djangoapps/user_authn/views/register.py @@ -15,8 +15,10 @@ from django.db import transaction from django.dispatch import Signal from django.utils.translation import get_language from django.utils.translation import ugettext as _ + # Note that this lives in LMS, so this dependency should be refactored. -from notification_prefs.views import enable_notifications +# TODO Have the discussions code subscribe to the REGISTER_USER signal instead. +from lms.djangoapps.discussion.notification_prefs.views import enable_notifications from pytz import UTC from requests import HTTPError from six import text_type diff --git a/openedx/core/djangoapps/user_authn/views/tests/test_auto_auth.py b/openedx/core/djangoapps/user_authn/views/tests/test_auto_auth.py index 78b34ba6a2..f6537f1890 100644 --- a/openedx/core/djangoapps/user_authn/views/tests/test_auto_auth.py +++ b/openedx/core/djangoapps/user_authn/views/tests/test_auto_auth.py @@ -9,10 +9,10 @@ from django.test.client import Client from mock import patch, Mock from opaque_keys.edx.locator import CourseLocator -from django_comment_common.models import ( +from openedx.core.djangoapps.discussion_common.models import ( Role, FORUM_ROLE_ADMINISTRATOR, FORUM_ROLE_MODERATOR, FORUM_ROLE_STUDENT ) -from django_comment_common.utils import seed_permissions_roles +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from student.models import anonymous_id_for_user, CourseAccessRole, CourseEnrollment, UserProfile from util.testing import UrlResetMixin diff --git a/openedx/core/djangoapps/user_authn/views/tests/test_register.py b/openedx/core/djangoapps/user_authn/views/tests/test_register.py index 6b1f2d4e0e..d4bf9550cb 100644 --- a/openedx/core/djangoapps/user_authn/views/tests/test_register.py +++ b/openedx/core/djangoapps/user_authn/views/tests/test_register.py @@ -16,12 +16,8 @@ from django.test.client import RequestFactory from django.test.utils import override_settings from django.contrib.auth.hashers import make_password -from django_comment_common.models import ForumsConfig -from notification_prefs import NOTIFICATION_PREF_KEY -from openedx.core.djangoapps.user_authn.views.register import ( - REGISTRATION_AFFILIATE_ID, REGISTRATION_UTM_CREATED_AT, REGISTRATION_UTM_PARAMETERS, - _skip_activation_email, -) +from lms.djangoapps.discussion.notification_prefs import NOTIFICATION_PREF_KEY +from openedx.core.djangoapps.discussion_common.models import ForumsConfig from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY from openedx.core.djangoapps.site_configuration.tests.mixins import SiteMixin from openedx.core.djangoapps.user_api.accounts import ( @@ -29,6 +25,10 @@ from openedx.core.djangoapps.user_api.accounts import ( ) from openedx.core.djangoapps.user_api.config.waffle import PREVENT_AUTH_USER_WRITES, waffle from openedx.core.djangoapps.user_api.preferences.api import get_user_preference +from openedx.core.djangoapps.user_authn.views.register import ( + REGISTRATION_AFFILIATE_ID, REGISTRATION_UTM_CREATED_AT, REGISTRATION_UTM_PARAMETERS, + _skip_activation_email, +) from student.models import UserAttribute from student.tests.factories import UserFactory from third_party_auth.tests import factories as third_party_auth_factory @@ -768,8 +768,11 @@ class TestCreateAccountValidation(TestCase): @mock.patch.dict("student.models.settings.FEATURES", {"ENABLE_DISCUSSION_SERVICE": True}) -@mock.patch("lms.lib.comment_client.User.base_url", TEST_CS_URL) -@mock.patch("lms.lib.comment_client.utils.requests.request", return_value=mock.Mock(status_code=200, text='{}')) +@mock.patch("openedx.core.djangoapps.discussion_common.comment_client.User.base_url", TEST_CS_URL) +@mock.patch( + "openedx.core.djangoapps.discussion_common.comment_client.utils.requests.request", + return_value=mock.Mock(status_code=200, text='{}') +) class TestCreateCommentsServiceUser(TransactionTestCase): """ Tests for creating comments service user. """ diff --git a/openedx/core/djangoapps/util/testing.py b/openedx/core/djangoapps/util/testing.py index 6719c7076c..b35c233162 100644 --- a/openedx/core/djangoapps/util/testing.py +++ b/openedx/core/djangoapps/util/testing.py @@ -3,8 +3,8 @@ from datetime import datetime from pytz import UTC -from django_comment_common.models import Role -from django_comment_common.utils import seed_permissions_roles +from openedx.core.djangoapps.discussion_common.models import Role +from openedx.core.djangoapps.discussion_common.utils import seed_permissions_roles from openedx.core.djangoapps.course_groups.models import CourseUserGroupPartitionGroup from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory from openedx.core.djangoapps.user_api.tests.factories import UserCourseTagFactory diff --git a/openedx/core/lib/xblock_builtin/xblock_discussion/xblock_discussion/__init__.py b/openedx/core/lib/xblock_builtin/xblock_discussion/xblock_discussion/__init__.py index 9cd4e0502e..c15952dc4b 100644 --- a/openedx/core/lib/xblock_builtin/xblock_discussion/xblock_discussion/__init__.py +++ b/openedx/core/lib/xblock_builtin/xblock_discussion/xblock_discussion/__init__.py @@ -161,7 +161,7 @@ class DiscussionXBlock(XBlock, StudioEditableXBlockMixin, XmlParserMixin): :rtype: bool """ # normal import causes the xmodule_assets command to fail due to circular import - hence importing locally - from django_comment_client.permissions import has_permission + from lms.djangoapps.discussion.django_comment_client.permissions import has_permission return has_permission(self.django_user, permission, self.course_key) diff --git a/openedx/features/content_type_gating/tests/test_access.py b/openedx/features/content_type_gating/tests/test_access.py index 1e0afac189..7f685c2063 100644 --- a/openedx/features/content_type_gating/tests/test_access.py +++ b/openedx/features/content_type_gating/tests/test_access.py @@ -12,14 +12,7 @@ from django.utils import timezone from mock import patch from course_api.blocks.api import get_blocks -from django_comment_common.models import ( - FORUM_ROLE_ADMINISTRATOR, - FORUM_ROLE_MODERATOR, - FORUM_ROLE_GROUP_MODERATOR, - FORUM_ROLE_COMMUNITY_TA, - Role -) -from django_comment_client.tests.factories import RoleFactory +from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory from course_modes.tests.factories import CourseModeFactory from experiments.models import ExperimentData, ExperimentKeyValue from xmodule.partitions.partitions import ENROLLMENT_TRACK_PARTITION_ID @@ -33,6 +26,13 @@ from lms.djangoapps.courseware.tests.factories import ( OrgInstructorFactory, GlobalStaffFactory, ) +from openedx.core.djangoapps.discussion_common.models import ( + FORUM_ROLE_ADMINISTRATOR, + FORUM_ROLE_MODERATOR, + FORUM_ROLE_GROUP_MODERATOR, + FORUM_ROLE_COMMUNITY_TA, + Role +) from openedx.core.djangoapps.user_api.tests.factories import UserCourseTagFactory from openedx.core.djangoapps.util.testing import TestConditionalContent from openedx.core.lib.url_utils import quote_slashes @@ -50,14 +50,6 @@ from student.tests.factories import ( UserFactory, TEST_PASSWORD ) -from lms.djangoapps.courseware.tests.factories import ( - InstructorFactory, - StaffFactory, - BetaTesterFactory, - OrgStaffFactory, - OrgInstructorFactory, - GlobalStaffFactory, -) from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory diff --git a/openedx/features/course_bookmarks/templates/course_bookmarks/course-bookmarks.html b/openedx/features/course_bookmarks/templates/course_bookmarks/course-bookmarks.html index 25248dd629..6724e2f44b 100644 --- a/openedx/features/course_bookmarks/templates/course_bookmarks/course-bookmarks.html +++ b/openedx/features/course_bookmarks/templates/course_bookmarks/course-bookmarks.html @@ -15,7 +15,7 @@ import json from django.utils.translation import ugettext as _ from django.template.defaultfilters import escapejs -from django_comment_client.permissions import has_permission +from lms.djangoapps.discussion.django_comment_client.permissions import has_permission from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string from openedx.core.djangolib.markup import HTML from openedx.features.course_experience import course_home_page_title diff --git a/openedx/features/course_duration_limits/tests/test_course_expiration.py b/openedx/features/course_duration_limits/tests/test_course_expiration.py index fb957ab697..a2b2fd0ab8 100644 --- a/openedx/features/course_duration_limits/tests/test_course_expiration.py +++ b/openedx/features/course_duration_limits/tests/test_course_expiration.py @@ -11,13 +11,7 @@ import ddt import mock from course_modes.models import CourseMode -from django_comment_client.tests.factories import RoleFactory -from django_comment_common.models import ( - FORUM_ROLE_ADMINISTRATOR, - FORUM_ROLE_MODERATOR, - FORUM_ROLE_GROUP_MODERATOR, - FORUM_ROLE_COMMUNITY_TA -) +from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory from experiments.models import ExperimentData from lms.djangoapps.courseware.tests.factories import ( InstructorFactory, @@ -28,6 +22,12 @@ from lms.djangoapps.courseware.tests.factories import ( GlobalStaffFactory, ) from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +from openedx.core.djangoapps.discussion_common.models import ( + FORUM_ROLE_ADMINISTRATOR, + FORUM_ROLE_MODERATOR, + FORUM_ROLE_GROUP_MODERATOR, + FORUM_ROLE_COMMUNITY_TA +) from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory from openedx.features.content_type_gating.helpers import CONTENT_GATING_PARTITION_ID, CONTENT_TYPE_GATE_GROUP_IDS from openedx.features.course_duration_limits.access import get_user_course_expiration_date, MIN_DURATION, MAX_DURATION diff --git a/openedx/features/course_experience/templates/course_experience/course-home-fragment.html b/openedx/features/course_experience/templates/course_experience/course-home-fragment.html index c6dee98b27..c5199ca8b3 100644 --- a/openedx/features/course_experience/templates/course_experience/course-home-fragment.html +++ b/openedx/features/course_experience/templates/course_experience/course-home-fragment.html @@ -11,7 +11,7 @@ from django.utils.translation import ugettext as _ from django.template.defaultfilters import escapejs from django.urls import reverse -from django_comment_client.permissions import has_permission +from lms.djangoapps.discussion.django_comment_client.permissions import has_permission from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string from openedx.core.djangolib.markup import HTML from openedx.features.course_experience import UNIFIED_COURSE_TAB_FLAG, SHOW_REVIEWS_TOOL_FLAG diff --git a/openedx/features/course_experience/tests/views/test_course_home.py b/openedx/features/course_experience/tests/views/test_course_home.py index 3b179f894c..15eac14f6e 100644 --- a/openedx/features/course_experience/tests/views/test_course_home.py +++ b/openedx/features/course_experience/tests/views/test_course_home.py @@ -21,13 +21,7 @@ from waffle.testutils import override_flag from course_modes.models import CourseMode from course_modes.tests.factories import CourseModeFactory from courseware.tests.helpers import get_expiration_banner_text -from django_comment_client.tests.factories import RoleFactory -from django_comment_common.models import ( - FORUM_ROLE_ADMINISTRATOR, - FORUM_ROLE_COMMUNITY_TA, - FORUM_ROLE_GROUP_MODERATOR, - FORUM_ROLE_MODERATOR -) +from lms.djangoapps.discussion.django_comment_client.tests.factories import RoleFactory from experiments.models import ExperimentData from lms.djangoapps.commerce.models import CommerceConfiguration from lms.djangoapps.commerce.utils import EcommerceService @@ -42,6 +36,12 @@ from lms.djangoapps.courseware.tests.factories import ( ) from openedx.core.djangoapps.content.course_overviews.models import CourseOverview from openedx.core.djangoapps.dark_lang.models import DarkLangConfig +from openedx.core.djangoapps.discussion_common.models import ( + FORUM_ROLE_ADMINISTRATOR, + FORUM_ROLE_COMMUNITY_TA, + FORUM_ROLE_GROUP_MODERATOR, + FORUM_ROLE_MODERATOR +) from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory from openedx.core.djangoapps.waffle_utils.testutils import WAFFLE_TABLES, override_waffle_flag from openedx.features.course_duration_limits.config import EXPERIMENT_DATA_HOLDBACK_KEY, EXPERIMENT_ID diff --git a/openedx/features/course_search/templates/course_search/course-search-fragment.html b/openedx/features/course_search/templates/course_search/course-search-fragment.html index 4a2bc45745..41cba6cc63 100644 --- a/openedx/features/course_search/templates/course_search/course-search-fragment.html +++ b/openedx/features/course_search/templates/course_search/course-search-fragment.html @@ -12,7 +12,7 @@ from django.utils.translation import ugettext as _ from django.template.defaultfilters import escapejs from django.urls import reverse -from django_comment_client.permissions import has_permission +from lms.djangoapps.discussion.django_comment_client.permissions import has_permission from openedx.core.djangolib.js_utils import dump_js_escaped_json, js_escaped_string from openedx.core.djangolib.markup import HTML from openedx.features.course_experience import course_home_page_title diff --git a/openedx/tests/settings.py b/openedx/tests/settings.py index 1fe06b2d7d..70ba0d41d5 100644 --- a/openedx/tests/settings.py +++ b/openedx/tests/settings.py @@ -60,12 +60,12 @@ PROCTORING_BACKENDS = { FEATURES = {} INSTALLED_APPS = ( - 'django_comment_common', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'djcelery', + 'openedx.core.djangoapps.discussion_common', 'openedx.core.djangoapps.video_config', 'openedx.core.djangoapps.video_pipeline', 'openedx.core.djangoapps.bookmarks.apps.BookmarksConfig',