from ..osid import registry as osid_registry

ANSWER_GENUS_TYPES = {
    'right-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'right-answer',
        'display_name': 'Right Answer',
        'display_label': 'Right Answer',
        'description': 'Correct response to the assessment question',
        'domain': 'assessment.Answer'},
    'wrong-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'wrong-answer',
        'display_name': 'Wrong Answer',
        'display_label': 'Wrong Answer',
        'description': 'Incorrect response to the assessment question',
        'domain': 'assessment.Answer'},
    'qti-choice-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-choice-interaction',
        'display_name': 'QTI Choice Interaction',
        'display_label': 'QTI Choice Interaction',
        'description': 'A QTI Choice Interaction answer (Multiple Choice)',
        'domain': 'assessment.Answer'},
    'qti-choice-interaction-multi-select': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-choice-interaction-multi-select',
        'display_name': 'QTI Choice Interaction with Multiple Selection',
        'display_label': 'QTI Choice Interaction with Multiple Selection',
        'description': 'A QTI Choice Interaction answer (Multiple Choice) with Multiple Selection',
        'domain': 'assessment.Answer'},
    'qti-upload-interaction-audio': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-upload-interaction-audio',
        'display_name': 'QTI Audio Upload Interaction',
        'display_label': 'QTI Audio Upload Interaction',
        'description': 'A QTI Audio Upload Interaction question',
        'domain': 'assessment.Answer'},
    'qti-upload-interaction-generic': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-upload-interaction-generic',
        'display_name': 'QTI Generic File Upload Interaction',
        'display_label': 'QTI Generic File Upload Interaction',
        'description': 'A QTI Generic File Upload Interaction question',
        'domain': 'assessment.Answer'},
    'qti-order-interaction-mw-sentence': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-order-interaction-mw-sentence',
        'display_name': 'QTI Movable Words Sentence Interaction',
        'display_label': 'QTI Movable Words Sentence Interaction',
        'description': 'A QTI Movable Words Sentence Interaction question',
        'domain': 'assessment.Answer'},
    'qti-order-interaction-mw-sandbox': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-order-interaction-mw-sandbox',
        'display_name': 'QTI Movable Words Sandbox Interaction',
        'display_label': 'QTI Movable Words Sandbox Interaction',
        'description': 'A QTI Movable Words Sandbox Interaction question',
        'domain': 'assessment.Answer'},
    'qti-order-interaction-object-manipulation': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-order-interaction-object-manipulation',
        'display_name': 'QTI Object Manipulation Interaction',
        'display_label': 'QTI Object Manipulation Interaction',
        'description': 'A QTI Object Manipulation Interaction question',
        'domain': 'assessment.Answer'},
    'qti-extended-text-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-extended-text-interaction',
        'display_name': 'QTI Extended Text Interaction',
        'display_label': 'QTI Extended Text Interaction',
        'description': 'A QTI Extended Text Interaction question',
        'domain': 'assessment.Answer'},
    'qti-inline-choice-interaction-mw-fill-in-the-blank': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-inline-choice-interaction-mw-fill-in-the-blank',
        'display_name': 'QTI Inline Choice Interaction, MW Fill-in-the-Blank',
        'display_label': 'QTI Inline Choice Interaction, MW Fill-in-the-Blank',
        'description': 'A QTI Inline Choice Interaction, MW Fill-in-the-Blank question',
        'domain': 'assessment.Answer'},
    'qti-numeric-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-type',
        'identifier': 'qti-numeric-response',
        'display_name': 'QTI Numeric Response',
        'display_label': 'QTI Numeric Response',
        'description': 'A QTI Numeric Response question',
        'domain': 'assessment.Answer'},
}

ANSWER_RECORD_TYPES = {
    'short-text-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'short-text-answer',
        'display_name': 'Short Text Answer',
        'display_label': 'Short Text Answer',
        'description': 'Assessment Answer record for Items that require a short ' +
                       'text Answer',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.text_answer_records',
        'object_record_class_name': 'ShortTextAnswerRecord',
        'form_record_class_name': 'ShortTextAnswerFormRecord'},

    'short-text-answers': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'short-text-answers',
        'display_name': 'Short Text Answers',
        'display_label': 'Short Text Answers',
        'description': 'Assessment Answer record for Items that require multiple ' +
                       'short text Answers',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.text_answer_records',
        'object_record_class_name': 'ShortTextAnswersRecord',
        'form_record_class_name': 'ShortTextAnswersFormRecord'},

    'extended-text-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'extended-text-answer',
        'display_name': 'Extended Text Answer',
        'display_label': 'Extended Text Answer',
        'description': 'Assessment Answer record for Items that require an extended ' +
                       'text Answer',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.text_answer_records',
        'object_record_class_name': 'ExtendedTextAnswerRecord',
        'form_record_class_name': 'ExtendedTextAnswerFormRecord'},

    'multi-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-choice',
        'display_name': 'Multiple-Choice Text Answer',
        'display_label': 'Multi-Choice Text Answer',
        'description': 'Assessment Answer record extension for answers to multiple-choice ' +
                       'questions',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiChoiceTextAnswerRecord',
        'form_record_class_name': 'MultiChoiceTextAnswerFormRecord'},

    'label-ortho-faces': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'label-ortho-faces',
        'display_name': 'Label Orthographic Faces',
        'display_label': 'Label Orthographic Faces',
        'description': 'Assessment Answer record extension for answers that require ' +
                       'labeling of the faces of a 3D object',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.' +
                       'orthographic_records',
        'object_record_class_name': 'LabelOrthoFacesAnswerRecord',
        'form_record_class_name': 'LabelOrthoFacesAnswerFormRecord'},

    'euler-rotation': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'euler-rotation',
        'display_name': 'Euler Rotation',
        'display_label': 'Euler Rotation',
        'description': 'Assessment Answer record extension for answers that require ' +
                       'rotating a 3D object',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.' +
                       'orthographic_records',
        'object_record_class_name': 'EulerRotationAnswerRecord',
        'form_record_class_name': 'EulerRotationAnswerFormRecord'},

    'multi-choice-ortho': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-choice-ortho',
        'display_name': 'Multiple-Choice Orthographic Answer',
        'display_label': 'Multi-Choice Ortho Answer',
        'description': 'Assessment Answer record extension for multiple choice answers ' +
                       'that include orthographic view set images',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.' +
                       'multi_choice_records',
        'object_record_class_name': 'MultiChoiceOrthoAnswerRecord',
        'form_record_class_name': 'MultiChoiceOrthoAnswerFormRecord'},

    'multi-choice-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-choice-edx',
        'display_name': 'edX Multiple-Choice Answer',
        'display_label': 'edX Multi-Choice Answer',
        'description': 'Assessment Answer record extension for multiple choice answers ' +
                       'from edX',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.edx.multi_choice_records',
        'object_record_class_name': 'edXMultiChoiceAnswerRecord',
        'form_record_class_name': 'edXMultiChoiceAnswerFormRecord'},

    'numeric-response-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'numeric-response-edx',
        'display_name': 'edX Numeric Response Answer',
        'display_label': 'edX Numeric Response Answer',
        'description': 'Assessment Answer record extension for numeric response answers ' +
                       'from edX',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.edx.numeric_response_records',
        'object_record_class_name': 'edXNumericResponseAnswerRecord',
        'form_record_class_name': 'edXNumericResponseAnswerFormRecord'},

    'mecqbank-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'mecqbank-answer',
        'display_name': 'MecQBank Generic Answer',
        'display_label': 'MecQBank Generic Answer',
        'description': 'Assessment Answer record extension for MecQBank answers',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.mecqbank.item_records',
        'object_record_class_name': 'MecQBankAnswerRecord',
        'form_record_class_name': 'MecQBankAnswerFormRecord'},

    'file-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'file-submission',
        'display_name': 'File Submission Answer',
        'display_label': 'File Submission Answer',
        'description': 'Assessment Answer record for file submission',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.file_answer_records',
        'object_record_class_name': 'FileSubmissionAnswerRecord',
        'form_record_class_name': 'FileSubmissionAnswerFormRecord'},

    'files-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'files-submission',
        'display_name': 'Files Submission Answer',
        'display_label': 'Files Submission Answer',
        'description': 'Assessment Answer record for files submission',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.file_answer_records',
        'object_record_class_name': 'FilesSubmissionAnswerRecord',
        'form_record_class_name': 'FilesSubmissionAnswerFormRecord'},

    'answer-with-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'answer-with-feedback',
        'display_name': 'Answer with feedback',
        'display_label': 'Answer with feedback',
        'description': 'Assessment Answer record with feedback (typically incorrect response)',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.feedback_answer_records',
        'object_record_class_name': 'FeedbackAnswerRecord',
        'form_record_class_name': 'FeedbackAnswerFormRecord'},

    'multi-choice-with-files-and-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-choice-with-files-and-feedback',
        'display_name': 'Multiple Choice Answer with feedback and files',
        'display_label': 'Multiple Choice Answer with feedback and files',
        'description': 'Assessment MC Answer record with feedback and files',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiChoiceFeedbackAndFilesAnswerRecord',
        'form_record_class_name': 'MultiChoiceFeedbackAndFilesAnswerFormRecord'},
    'qti': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'qti',
        'display_name': 'QTI Answer Record',
        'display_label': 'QTI Answer Record',
        'description': 'An Answer record that can import and export QTI',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.qti.basic',
        'object_record_class_name': 'QTIAnswerRecord',
        'form_record_class_name': 'QTIAnswerFormRecord'},
    'files': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'files',
        'display_name': 'Files Answer Record',
        'display_label': 'Files Answer Record',
        'description': 'An Answer record that includes files',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.simple_records',
        'object_record_class_name': 'FilesAnswerRecord',
        'form_record_class_name': 'FilesAnswerFormRecord'},
    'ordered-choice-with-files-and-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'ordered-choice-with-files-and-feedback',
        'display_name': 'Ordered Choice Answer with feedback and files',
        'display_label': 'Ordered Choice Answer with feedback and files',
        'description': 'Assessment Ordered Choice Answer record with feedback and files',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.qti.ordered_choice_records',
        'object_record_class_name': 'OrderedChoiceFeedbackAndFilesAnswerRecord',
        'form_record_class_name': 'OrderedChoiceFeedbackAndFilesAnswerFormRecord'},
    'qti-inline-choice-with-files-and-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'qti-inline-choice-with-files-and-feedback',
        'display_name': 'QTI Inline-Choice Answer with feedback and files',
        'display_label': 'QTI Inline-Choice Answer with feedback and files',
        'description': 'Assessment Inline-Choice Answer record with feedback and files',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.qti.inline_choice_records',
        'object_record_class_name': 'InlineChoiceFeedbackAndFilesAnswerRecord',
        'form_record_class_name': 'InlineChoiceFeedbackAndFilesAnswerFormRecord'},
    'qti-numeric-response-with-files-and-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'qti-numeric-response-with-files-and-feedback',
        'display_name': 'QTI Numeric Response Answer with feedback and files',
        'display_label': 'QTI Numeric Response Answer with feedback and files',
        'description': 'Assessment Numeric Response Answer record with feedback and files',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.qti.numeric_response_records',
        'object_record_class_name': 'CalculationInteractionFeedbackAndFilesAnswerRecord',
        'form_record_class_name': 'CalculationInteractionFeedbackAndFilesAnswerFormRecord'},

    'multi-language-answer-with-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-language-answer-with-feedback',
        'display_name': 'Answer with multi-language feedback',
        'display_label': 'Answer with multi-language feedback',
        'description': 'Assessment Answer record with multi-language feedback (typically incorrect response)',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.feedback_answer_records',
        'object_record_class_name': 'MultiLanguageFeedbacksAnswerRecord',
        'form_record_class_name': 'MultiLanguageFeedbacksAnswerFormRecord'},

    'multi-language-numeric-response-with-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-language-numeric-response-with-feedback',
        'display_name': 'Answer with multi-language feedback',
        'display_label': 'Answer with multi-language feedback',
        'description': 'Assessment Answer record with multi-language feedback (typically incorrect response)',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.qti.numeric_response_records',
        'object_record_class_name': 'MultiLanguageCalculationInteractionFeedbackAndFilesAnswerRecord',
        'form_record_class_name': 'MultiLanguageCalculationInteractionFeedbackAndFilesAnswerFormRecord'},

    'multi-choice-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'multi-choice-answer',
        'display_name': 'Simple MC Answer',
        'display_label': 'Simple MC Answer',
        'description': 'Assessment Simple MC Answer',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiChoiceAnswerRecord',
        'form_record_class_name': 'MultiChoiceAnswerFormRecord'},

    'inline-choice-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'inline-choice-answer',
        'display_name': 'Simple Inline Choice Answer',
        'display_label': 'Simple Inline Choice Answer',
        'description': 'Assessment Simple Inline Choice Answer',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.qti.inline_choice_records',
        'object_record_class_name': 'InlineChoiceAnswerRecord',
        'form_record_class_name': 'InlineChoiceAnswerFormRecord'},

    'drag-and-drop': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'answer-record-type',
        'identifier': 'drag-and-drop',
        'display_name': 'Drag and Drop Answer',
        'display_label': 'Drag and Drop Answer',
        'description': 'Assessment Drag and Drop Answer',
        'domain': 'assessment.Answer',
        'module_path': 'dlkit.records.assessment.basic.drag_and_drop_records',
        'object_record_class_name': 'DragAndDropAnswerRecord',
        'form_record_class_name': 'DragAndDropAnswerFormRecord'},
}

ANSWER_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

ASSESSMENT_RECORD_TYPES = {
    'mecqbank-assessment': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-record-type',
        'identifier': 'mecqbank-assessment',
        'display_name': 'MecQBank Assessment',
        'display_label': 'MecQBank Assessment',
        'description': 'Assessment record extension for MecQBank based Assessments',
        'domain': 'assessment.Assessment',
        'module_path': 'dlkit.records.assessment.mecqbank.item_records',
        'object_record_class_name': 'MecQBankAssessmentRecord',
        'form_record_class_name': 'MecQBankAssessmentFormRecord',
        'query_record_class_name': 'MecQBankAssessmentQueryRecord'},
    'qti': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-record-type',
        'identifier': 'qti',
        'display_name': 'QTI Assessment',
        'display_label': 'QTI Assessment',
        'description': 'Assessment record extension for QTI Assessments',
        'domain': 'assessment.Assessment',
        'module_path': 'dlkit.records.assessment.qti.basic',
        'object_record_class_name': 'QTIAssessmentRecord',
        'form_record_class_name': 'QTIAssessmentFormRecord'},
    'fbw-phase-i': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-record-type',
        'identifier': 'fbw-phase-i',
        'display_name': 'FbW Phase I Assessment',
        'display_label': 'FbW Phase I Assessment',
        'description': 'FbW Assessment that spawns Phase II assessments',
        'domain': 'assessment.Assessment',
        'module_path': 'dlkit.records.assessment.fbw.assessment_records',
        'object_record_class_name': 'AssessmentWithFollowOnPhaseRecord',
        'form_record_class_name': 'AssessmentWithFollowOnPhaseFormRecord'},
    'fbw-phase-ii': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-record-type',
        'identifier': 'fbw-phase-ii',
        'display_name': 'FbW Phase II Assessment',
        'display_label': 'FbW Phase II Assessment',
        'description': 'FbW Assessment that was spawned from a Phase I assessment',
        'domain': 'assessment.Assessment',
        'module_path': 'dlkit.records.assessment.fbw.assessment_records',
        'object_record_class_name': 'GeneratedAssessmentRecord',
        'form_record_class_name': 'GeneratedAssessmentFormRecord',
        'query_record_class_name': 'GeneratedAssessmentQueryRecord'}
}

ASSESSMENT_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

BANK_GENUS_TYPES = {
    'fbw-bank': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'bank-genus-type',
        'identifier': 'fbw-bank',
        'display_name': 'Fly-by-Wire Assessment Bank',
        'display_label': 'Fly-by-Wire Assessment Bank',
        'description': 'Assessment bank with Fly-by-Wire content',
        'domain': 'assessment.Bank'},
    'fbw-root': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-root',
        'display_name': 'Fly-by-Wire Root Node / Bank',
        'display_label': 'Fly-by-Wire Root Node / Bank',
        'description': 'Root assessment bank with Fly-by-Wire content (in hierarchy)',
        'domain': 'assessment.Bank'},
    'fbw-content-libraries': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-content-libraries',
        'display_name': 'Fly-by-Wire Content Libraries container',
        'display_label': 'Fly-by-Wire Content Libraries container',
        'description': 'Assessment bank node that holds individual subject-area content libraries for Fly-by-Wire',
        'domain': 'assessment.Bank'},
    'fbw-content-domain': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-content-domain',
        'display_name': 'Fly-by-Wire Content Domain',
        'display_label': 'Fly-by-Wire Content Domain',
        'description': 'Assessment bank node that holds subject-area content for Fly-by-Wire',
        'domain': 'assessment.Bank'},
    'fbw-content-library': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-content-library',
        'display_name': 'Fly-by-Wire Subject-specific content library',
        'display_label': 'Fly-by-Wire Subject-specific content library',
        'description': 'Assessment bank with subject-specific Fly-by-Wire content',
        'domain': 'assessment.Bank'},
    'fbw-schools': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-schools',
        'display_name': 'Fly-by-Wire Schools container',
        'display_label': 'Fly-by-Wire Schools container',
        'description': 'Assessment bank node that holds school-specific course offerings for Fly-by-Wire',
        'domain': 'assessment.Bank'},
    'fbw-school': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-school',
        'display_name': 'Fly-by-Wire Single School',
        'display_label': 'Fly-by-Wire Single School',
        'description': 'Assessment bank that holds course offerings for a single Fly-by-Wire school',
        'domain': 'assessment.Bank'},
    'fbw-department': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-bank-genus',
        'identifier': 'fbw-department',
        'display_name': 'Fly-by-Wire Department (within a school)',
        'display_label': 'Fly-by-Wire Department (within a school)',
        'description': 'Assessment bank that holds course offerings for a single Fly-by-Wire department in a school',
        'domain': 'assessment.Bank'},
    'mecqbank-bank': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'bank-genus-type',
        'identifier': 'mecqbank-bank',
        'display_name': 'MecQBank Assessment Bank',
        'display_label': 'MecQBank Assessment Bank',
        'description': 'Assessment bank with MecQBank content',
        'domain': 'assessment.Bank'}
}

BANK_RECORD_TYPES = {
    'bank-color': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'bank-record-type',
        'identifier': 'bank-color',
        'display_name': 'Bank Color',
        'display_label': 'Bank Color',
        'description': 'Assessment Bank record extension for Banks of color',
        'domain': 'assessment.Bank',
        'module_path': 'dlkit.records.assessment.basic.simple_records',
        'object_record_class_name': 'BankColorRecord',
        'form_record_class_name': 'BankColorFormRecord'},
    'objective-bank': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'bank-record-type',
        'identifier': 'objective-bank',
        'display_name': 'Bank linked to a learning Objective Bank Id',
        'display_label': 'Bank linked to a learning Objective Bank Id',
        'description': 'Assessment Bank record extension to link with external objective banks',
        'domain': 'assessment.Bank',
        'module_path': 'dlkit.records.assessment.fbw.assessment_bank_records',
        'object_record_class_name': 'AssessmentBankWithObjectiveBankRecord',
        'form_record_class_name': 'AssessmentBankWithObjectiveBankFormRecord'},
}

ASSESSMENT_OFFERED_RECORD_TYPES = {
    'review-options': {
        'authority': 'MOODLE.ORG',
        'namespace': 'assessment-offered-record-type',
        'identifier': 'review-options',
        'display_name': 'Review Options',
        'display_label': 'Review Options',
        'description': 'AssessmentOffeed record extension for that supports Moodle style ' +
                       'review options',
        'domain': 'assessment.AssessmentOffered',
        'module_path': 'dlkit.records.assessment.basic.assessment_records',
        'object_record_class_name': 'ReviewOptionsAssessmentOfferedRecord',
        'form_record_class_name': 'ReviewOptionsAssessmentOfferedFormRecord'},
    'n-of-m': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-offered-record-type',
        'identifier': 'n-of-m',
        'display_name': 'N of M',
        'display_label': 'N of M',
        'description': 'AssessmentOffered record extension for that supports N of M questions',
        'domain': 'assessment.AssessmentOffered',
        'module_path': 'dlkit.records.assessment.clix.assessment_offered_records',
        'object_record_class_name': 'NofMAssessmentOfferedRecord',
        'form_record_class_name': 'NofMAssessmentOfferedFormRecord'},
    'unlock-previous-button': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-offered-record-type',
        'identifier': 'unlock-previous-button',
        'display_name': 'Unlock Previous Button',
        'display_label': 'Unlock Previous Button',
        'description': 'AssessmentOffered record extension for that supports unlocking of previous button',
        'domain': 'assessment.AssessmentOffered',
        'module_path': 'dlkit.records.assessment.clix.assessment_offered_records',
        'object_record_class_name': 'UnlockPreviousButtonAssessmentOfferedRecord',
        'form_record_class_name': 'UnlockPreviousButtonAssessmentOfferedFormRecord'}
}

ASSESSMENT_OFFERED_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

ASSESSMENT_PART_RECORD_TYPES = {
    'objective-based': {
        'authority': 'FBW.MIT.EDU',
        'namespace': 'assessment-part-record-type',
        'identifier': 'objective-based',
        'display_name': 'Learning Objective-based Part',
        'display_label': 'Learning Objective-based Part',
        'description': 'AssessmentPart record extension for that supports learning objective with' +
                       'minimum proficiency',
        'domain': 'assessment.AssessmentPart',
        'module_path': 'dlkit.records.assessment.fbw.assessment_part_records',
        'object_record_class_name': 'AssessmentPartWithLearningObjectiveRecord',
        'form_record_class_name': 'AssessmentPartWithLearningObjectiveFormRecord'},
    'scaffold-down': {
        'authority': 'FBW.MIT.EDU',
        'namespace': 'assessment-part-record-type',
        'identifier': 'scaffold-down',
        'display_name': 'Scaffold-Down Adaptive Assessment Part Record',
        'display_label': 'Scaffold-Down Adaptive Assessment Part Record',
        'description': 'AssessmentPart record extension for that supports adaptive down scaffolding',
        'domain': 'assessment.AssessmentPart',
        'module_path': 'dlkit.records.assessment.basic.assessment_part_records',
        'object_record_class_name': 'ScaffoldDownAssessmentPartRecord',
        'form_record_class_name': 'ScaffoldDownAssessmentPartFormRecord'},
}

ASSESSMENT_PART_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

ASSESSMENT_SECTION_RECORD_TYPES = {

}

ASSESSMENT_SECTION_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

ASSESSMENT_TAKEN_RECORD_TYPES = {
    'review-options': {
        'authority': 'MOODLE.ORG',
        'namespace': 'assessment-taken-record-type',
        'identifier': 'review-options',
        'display_name': 'Review Options',
        'display_label': 'Review Options',
        'description': 'AssessmentTaken record extension for that supports Moodle style ' +
                       'review options',
        'domain': 'assessment.AssessmentTaken',
        'module_path': 'dlkit.records.assessment.basic.assessment_records',
        'object_record_class_name': 'ReviewOptionsAssessmentTakenRecord',
        'form_record_class_name': 'ReviewOptionsAssessmentTakenFormRecord'},
    'advanced-query': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'assessment-taken-record-type',
        'identifier': 'advanced-query',
        'display_name': 'Advanced queries',
        'display_label': 'Advanced queries',
        'description': 'AssessmentTaken record extension FBW queries',
        'domain': 'assessment.AssessmentTaken',
        'module_path': 'dlkit.records.assessment.fbw.assessment_taken_records',
        'object_record_class_name': 'AdvancedQueryAssessmentTakenRecord',
        'form_record_class_name': 'AdvancedQueryAssessmentTakenFormRecord',
        'query_record_class_name': 'AdvancedQueryAssessmentTakenQueryRecord'},
}

ASSESSMENT_TAKEN_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

ITEM_GENUS_TYPES = {
    'problem': {
        'authority': 'EDX.ORG',
        'namespace': 'edx-assessment-item',
        'identifier': 'problem',
        'display_name': 'edX problem asset',
        'display_label': 'edX problem asset',
        'description': 'An edX problem',
        'domain': 'assessment.Item'
    },
    'multi-choice-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'edx-multi-choice-problem-type',
        'display_name': 'edX Multi-Choice Problem Type',
        'display_label': 'edX Multi-Choice Problem Type',
        'description': 'An assessment item for an edX multiple choice problem',
        'domain': 'assessment.Item'
    },
    'multi-file-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'multi-file-submission',
        'display_name': 'Files Submission Problem Type',
        'display_label': 'Files Submission Problem Type',
        'description': 'An assessment item with files submission as student response',
        'domain': 'assessment.Item'
    },
    'numeric-response-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'edx-numeric-response-problem-type',
        'display_name': 'edX Numeric Response Problem Type',
        'display_label': 'edX Numeric Response Problem Type',
        'description': 'An assessment item for an edX numeric response problem',
        'domain': 'assessment.Item'
    },

    'multi-choice-fbw': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'fbw-multi-choice-problem-type',
        'display_name': 'Fly-by-Wire Multi-Choice Problem Type',
        'display_label': 'Fly-by-Wire Multi-Choice Problem Type',
        'description': 'An assessment item for a Fly-by-Wire multiple choice problem',
        'domain': 'assessment.Item'
    },
    'qti-choice-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-choice-interaction',
        'display_name': 'QTI Choice Interaction',
        'display_label': 'QTI Choice Interaction',
        'description': 'A QTI Choice Interaction question (Multiple Choice)',
        'domain': 'assessment.Item'},
    'qti-choice-interaction-multi-select': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-choice-interaction-multi-select',
        'display_name': 'QTI Choice Interaction Multiple Selection',
        'display_label': 'QTI Choice Interaction Multiple Selection',
        'description': 'A QTI Choice Interaction question (Multiple Choice) with Multiple Selection',
        'domain': 'assessment.Item'},
    'qti-choice-interaction-survey': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-choice-interaction-survey',
        'display_name': 'QTI Choice Interaction Survey',
        'display_label': 'QTI Choice Interaction Survey',
        'description': 'A QTI Choice Interaction survey question (Multiple Choice)',
        'domain': 'assessment.Item'},
    'qti-choice-interaction-multi-select-survey': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-choice-interaction-multi-select-survey',
        'display_name': 'QTI Choice Interaction Multi-Select Survey',
        'display_label': 'QTI Choice Interaction Multi-Select Survey',
        'description': 'A QTI Choice Interaction multi-select survey question (Multiple Choice)',
        'domain': 'assessment.Item'},
    'qti-upload-interaction-audio': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-upload-interaction-audio',
        'display_name': 'QTI Audio Upload Interaction',
        'display_label': 'QTI Audio Upload Interaction',
        'description': 'A QTI Audio Upload Interaction question',
        'domain': 'assessment.Item'},
    'qti-upload-interaction-generic': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-upload-interaction-generic',
        'display_name': 'QTI Generic File Upload Interaction',
        'display_label': 'QTI Generic File Upload Interaction',
        'description': 'A QTI Generic File Upload Interaction question',
        'domain': 'assessment.Item'},
    'qti-order-interaction-mw-sentence': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-order-interaction-mw-sentence',
        'display_name': 'QTI Movable Words Sentence Interaction',
        'display_label': 'QTI Movable Words Sentence Interaction',
        'description': 'A QTI Movable Words Sentence Interaction question',
        'domain': 'assessment.Item'},
    'qti-order-interaction-mw-sandbox': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-order-interaction-mw-sandbox',
        'display_name': 'QTI Movable Words Sandbox Interaction',
        'display_label': 'QTI Movable Words Sandbox Interaction',
        'description': 'A QTI Movable Words Sandbox Interaction question',
        'domain': 'assessment.Item'},
    'qti-order-interaction-object-manipulation': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-order-interaction-object-manipulation',
        'display_name': 'QTI Object Manipulation Interaction',
        'display_label': 'QTI Object Manipulation Interaction',
        'description': 'A QTI Object Manipulation Interaction question',
        'domain': 'assessment.Item'},
    'qti-extended-text-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-extended-text-interaction',
        'display_name': 'QTI Extended Text Interaction',
        'display_label': 'QTI Extended Text Interaction',
        'description': 'A QTI Extended Text Interaction question',
        'domain': 'assessment.Item'},
    'qti-inline-choice-interaction-mw-fill-in-the-blank': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-inline-choice-interaction-mw-fill-in-the-blank',
        'display_name': 'QTI Movable Words Fill-in-the-Blank Interaction',
        'display_label': 'QTI Movable Words Fill-in-the-Blank Interaction',
        'description': 'A QTI Movable Words Fill-in-the-Blank Interaction question',
        'domain': 'assessment.Item'},
    'qti-numeric-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'qti-numeric-response',
        'display_name': 'QTI Numeric Response',
        'display_label': 'QTI Numeric Response',
        'description': 'A QTI Numeric Response question',
        'domain': 'assessment.Item'},
    'drag-and-drop': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-genus-type',
        'identifier': 'drag-and-drop',
        'display_name': 'Drag and Drop',
        'display_label': 'Drag and Drop',
        'description': 'A Drag and Drop question',
        'domain': 'assessment.Item'},
}

ITEM_RECORD_TYPES = {
    'item-text': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'item-text',
        'display_name': 'Item Text',
        'display_label': 'Item Text',
        'description': 'Assessment Item record extension for Items with text',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.simple_records',
        'object_record_class_name': 'ItemTextRecord',
        'form_record_class_name': 'ItemTextFormRecord'},

    'item-texts': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'item-texts',
        'display_name': 'Item Texts',
        'display_label': 'Item Texts',
        'description': 'Assessment Item record extension for Items with multiple texts',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.simple_records',
        'object_record_class_name': 'ItemTextsRecord',
        'form_record_class_name': 'ItemTextsFormRecord'},

    'item-files': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'item-files',
        'display_name': 'Item Files',
        'display_label': 'Item Files',
        'description': 'Assessment Item record extension for Items with files',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.simple_records',
        'object_record_class_name': 'ItemFilesRecord',
        'form_record_class_name': 'ItemFilesFormRecord'},

    'irt_item': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'irt_item',
        'display_name': 'IRT Item',
        'display_label': 'IRT Item',
        'description': 'Assessment Item record extension for Items that ' +
                       'include Item Response Theory data',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.analytic.irt',
        'object_record_class_name': 'IRTItemRecord',
        'form_record_class_name': 'IRTItemFormRecord',
        'query_record_class_name': 'IRTItemQueryRecord'},

    'edx_item': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'edx_item',
        'display_name': 'edX Item',
        'display_label': 'edX Item',
        'description': 'Assessment Item record extension for edX based Items',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.edx.item_records',
        'object_record_class_name': 'edXItemRecord',
        'form_record_class_name': 'edXItemFormRecord',
        'query_record_class_name': 'edXItemQueryRecord'},

    'edx_multiple_choice_item': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'edx_multiple_choice_item',
        'display_name': 'edX Item',
        'display_label': 'edX Item',
        'description': 'Assessment Item record extension for edX based Items',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.edx.multi_choice_records',
        'object_record_class_name': 'EdXMultipleChoiceItemRecord',
        'form_record_class_name': 'EdXMultipleChoiceItemFormRecord'},

    'edx-numeric-response-item': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'edx-numeric-response-item',
        'display_name': 'edX Numeric Response Item',
        'display_label': 'edX Numeric Response Item',
        'description': 'Assessment Item record extension for edX Numeric Response Items',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.edx.numeric_response_records',
        'object_record_class_name': 'EdXNumericResponseItemRecord',
        'form_record_class_name': 'EdXNumericResponseItemFormRecord'},

    'label-ortho-faces': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'label-ortho-faces',
        'display_name': 'Ortho 3D Item',
        'display_label': 'ORtho 3D Item',
        'description': 'Assessment Item record extension for label ortho 3D face Items',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.orthographic_records',
        'object_record_class_name': 'LabelOrthoFacesItemRecord',
        'form_record_class_name': 'LabelOrthoFacesItemFormRecord'},

    'mecqbank-item': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'mecqbank-item',
        'display_name': 'MecQBank Item',
        'display_label': 'MecQBank Item',
        'description': 'Assessment Item record extension for MecQBank based Items',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.mecqbank.item_records',
        'object_record_class_name': 'MecQBankItemRecord',
        'form_record_class_name': 'MecQBankItemFormRecord',
        'query_record_class_name': 'MecQBankItemQueryRecord'},

    'wrong-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'wrong-answer',
        'display_name': 'Has wrong answers',
        'display_label': 'Has wrong answers',
        'description': 'Assessment Item record with wrong answers',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.wrong_answers',
        'object_record_class_name': 'WrongAnswerItemRecord',
        'form_record_class_name': 'WrongAnswerItemFormRecord'},

    'sourceable': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'sourceable',
        'display_name': 'Derived from OSID Sourceable',
        'display_label': 'Derived from OSID Sourceable',
        'description': 'Assessment Item record with sourceable field',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.osid.base_records',
        'object_record_class_name': 'SourceableRecord',
        'form_record_class_name': 'SourceableFormRecord'},
    'qti': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'qti',
        'display_name': 'QTI Item Record',
        'display_label': 'QTI Item Record',
        'description': 'An Item record that can import and export QTI',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.qti.basic',
        'object_record_class_name': 'QTIItemRecord',
        'form_record_class_name': 'QTIItemFormRecord'},
    'provenance': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'provenance',
        'display_name': 'Item Record with Provenance',
        'display_label': 'Item Record with Provenance',
        'description': 'An Item record with provenance',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.base_records',
        'object_record_class_name': 'ProvenanceItemRecord',
        'form_record_class_name': 'ProvenanceItemFormRecord'},
    'qti-numeric-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'qti-numeric-response',
        'display_name': 'QTI Numeric Response Item',
        'display_label': 'QTI Numeric Response Item',
        'description': 'Assessment Item record for Questions that use randomly generated variables',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.qti.numeric_response_records',
        'object_record_class_name': 'CalculationInteractionItemRecord',
        'form_record_class_name': 'CalculationInteractionItemFormRecord'},
    'qti-inline-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'qti-inline-choice',
        'display_name': 'QTI Inline Choice Item',
        'display_label': 'QTI Inline CHoice Item',
        'description': 'Assessment Item record for Inline Choice Questions',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.qti.inline_choice_records',
        'object_record_class_name': 'MagicRandomizedInlineChoiceItemRecord',
        'form_record_class_name': 'MagicRandomizedInlineChoiceItemFormRecord'},
    'multi-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'multi-choice',
        'display_name': 'Multiple Choice Item',
        'display_label': 'Multiple Choice Item',
        'description': 'Assessment Item record for Multiple Choice',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiChoiceItemRecord',
        'form_record_class_name': 'MultiChoiceItemFormRecord'},
    'answer-with-feedback': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'answer-with-feedback',
        'display_name': 'Answer with Feedback Item',
        'display_label': 'Answer with Feedback Item',
        'description': 'Assessment Item record for Answers with Feedback',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.feedback_item_records',
        'object_record_class_name': 'FeedbackAnswerItemRecord',
        'form_record_class_name': 'FeedbackAnswerItemFormRecord'},
    'with-solution': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'with-solution',
        'display_name': 'Item with general solution',
        'display_label': 'Item with general solution',
        'description': 'Assessment Item record for Item with general solution',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.base_records',
        'object_record_class_name': 'ItemWithSolutionRecord',
        'form_record_class_name': 'ItemWithSolutionFormRecord'},
    'drag-and-drop': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'item-record-type',
        'identifier': 'drag-and-drop',
        'display_name': 'Drag and Drop Item',
        'display_label': 'Drag and Drop Item',
        'description': 'Assessment Item record for Drag and Drop',
        'domain': 'assessment.Item',
        'module_path': 'dlkit.records.assessment.basic.drag_and_drop_records',
        'object_record_class_name': 'DragAndDropItemRecord',
        'form_record_class_name': 'DragAndDropItemFormRecord'},
}

ITEM_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

QUESTION_GENUS_TYPES = {
    'short-text-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'short-text-answer',
        'display_name': 'Short Text Answer Question',
        'display_label': 'Short Text Answer Question',
        'description': 'Assessment Question that requires a short text Answer',
        'domain': 'assessment.Question'},

    'short-text-answers': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'short-text-answers',
        'display_name': 'Short Text Answers Question',
        'display_label': 'Short Text Answers Question',
        'description': 'Assessment Question that requires multiple short text Answers',
        'domain': 'assessment.Question'},

    'extended-text-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'extended-text-answer',
        'display_name': 'Response String Question',
        'display_label': 'Response String Question',
        'description': 'Assessment Question that requires an extended text Answer',
        'domain': 'assessment.Question'},

    'multi-choice-text': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'multi-choice-text',
        'display_name': 'Multiple-Choice Text Question',
        'display_label': 'Multi-Choice Text Question',
        'description': 'Assessment Question that requires a multiple choice Answer',
        'domain': 'assessment.Question'},

    'match-ortho-faces': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'match-ortho-faces',
        'display_name': 'Match Orthographic Faces',
        'display_label': 'Match Orthographic Faces',
        'description': 'Assessment Question that requires matching the orthographic faces ' +
                       'of a 3D object',
        'domain': 'assessment.Question'},

    'define-ortho-faces': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'define-ortho-faces',
        'display_name': 'Define Orthographic Faces',
        'display_label': 'Define Orthographic Faces',
        'description': 'Assessment Question that requires defining the orhtographic faces ' +
                       'of a 3D object',
        'domain': 'assessment.Question'},

    'euler-rotation': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'euler-rotation',
        'display_name': 'Euler Rotation',
        'display_label': 'Euler Rotation',
        'description': 'Assessment Question that requires rotating a 3D object',
        'domain': 'assessment.Question'},

    'multi-choice-ortho': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'multi-choice-ortho',
        'display_name': 'Multiple-Choice Orthographic Question',
        'display_label': 'Multi-Choice Ortho Question',
        'description': 'Multiple-Choice assessment Question that includes orthographic ' +
                       'view set images',
        'domain': 'assessment.Question'},

    'multi-choice-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'multi-choice-edx',
        'display_name': 'edX Multiple-Choice Question',
        'display_label': 'edX Multi-Choice Question',
        'description': 'Assessment Question for multiple choice questions from edX',
        'domain': 'assessment.Question'},

    'mecqbank-long': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'mecqbank-long',
        'display_name': 'Long format MecQBank Question',
        'display_label': 'Long format MecQBank Question',
        'description': 'Assessment Question for MecQBank long format questions',
        'domain': 'assessment.Question'},

    'mecqbank-concept': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'mecqbank-concept',
        'display_name': 'Concept format MecQBank Question',
        'display_label': 'Concept format MecQBank Question',
        'description': 'Assessment Question for MecQBank concept questions',
        'domain': 'assessment.Question'},

    'mecqbank-mcq': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'mecqbank-mcq',
        'display_name': 'Multiple Choice MecQBank Question',
        'display_label': 'Multiple Choice MecQBank Question',
        'description': 'Assessment Question for MecQBank multiple choice questions',
        'domain': 'assessment.Question'},

    'mecqbank-tf': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'mecqbank-tf',
        'display_name': 'True / False MecQBank Question',
        'display_label': 'True / False MecQBank Question',
        'description': 'Assessment Question for MecQBank true / false questions',
        'domain': 'assessment.Question'},

    'mecqbank-code': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'mecqbank-code',
        'display_name': 'Code Response MecQBank Question',
        'display_label': 'Code Response MecQBank Question',
        'description': 'Assessment Question for MecQBank code response questions',
        'domain': 'assessment.Question'},

    'file-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'file-submission',
        'display_name': 'File Submission Question',
        'display_label': 'File Submission Question',
        'description': 'Assessment Question for file submissions',
        'domain': 'assessment.Question'},

    'files-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'files-submission',
        'display_name': 'Files Submission Question',
        'display_label': 'Files Submission Question',
        'description': 'Assessment Question for files submissions',
        'domain': 'assessment.Question'},

    'multiple-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'multiple-choice',
        'display_name': 'Multiple Choice Question',
        'display_label': 'Multiple Choice Question',
        'description': 'MC question; pick one of the choices',
        'domain': 'assessment.Question'},

    'survey-free-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'survey-free-response',
        'display_name': 'Free Response Survey Question',
        'display_label': 'Free Response Survey Question',
        'description': 'Survey question; free response',
        'domain': 'assessment.Question'},

    'survey-multiple-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'survey-multiple-choice',
        'display_name': 'Multiple Choice Survey Question',
        'display_label': 'Multiple Choice Survey Question',
        'description': 'Survey question; pick one of the choices',
        'domain': 'assessment.Question'},

    'survey-multiple-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'survey-multiple-response',
        'display_name': 'Multiple Response Survey Question',
        'display_label': 'Multiple Response Survey Question',
        'description': 'Survey question; pick one or more of the choices',
        'domain': 'assessment.Question'},

    'qti-choice-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-choice-interaction',
        'display_name': 'QTI Choice Interaction',
        'display_label': 'QTI Choice Interaction',
        'description': 'A QTI Choice Interaction question (Multiple Choice)',
        'domain': 'assessment.Question'},
    'qti-choice-interaction-multi-select': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-choice-interaction-multi-select',
        'display_name': 'QTI Choice Interaction Multiple Selection',
        'display_label': 'QTI Choice Interaction Multiple Selection',
        'description': 'A QTI Choice Interaction question (Multiple Choice) with Multiple Selection',
        'domain': 'assessment.Question'},
    'qti-choice-interaction-survey': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-choice-interaction-survey',
        'display_name': 'QTI Choice Interaction Survey',
        'display_label': 'QTI Choice Interaction Survey',
        'description': 'A QTI Choice Interaction Survey question (Multiple Choice)',
        'domain': 'assessment.Question'},
    'qti-choice-interaction-multi-select-survey': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-choice-interaction-multi-select-survey',
        'display_name': 'QTI Choice Interaction Multi Select Survey',
        'display_label': 'QTI Choice Interaction Multi Select Survey',
        'description': 'A QTI Choice Interaction Multi Select Survey question (Multiple Choice)',
        'domain': 'assessment.Question'},
    'qti-upload-interaction-audio': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-upload-interaction-audio',
        'display_name': 'QTI Audio Upload Interaction',
        'display_label': 'QTI Audio Upload Interaction',
        'description': 'A QTI Audio Upload Interaction question',
        'domain': 'assessment.Question'},
    'qti-upload-interaction-generic': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-upload-interaction-generic',
        'display_name': 'QTI Generic File Upload Interaction',
        'display_label': 'QTI Generic File Upload Interaction',
        'description': 'A QTI Generic File Upload Interaction question',
        'domain': 'assessment.Question'},
    'qti-order-interaction-mw-sentence': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-order-interaction-mw-sentence',
        'display_name': 'QTI Movable Words Sentence Interaction',
        'display_label': 'QTI Movable Words Sentence Interaction',
        'description': 'A QTI Movable Words Sentence Interaction question',
        'domain': 'assessment.Question'},
    'qti-order-interaction-mw-sandbox': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-order-interaction-mw-sandbox',
        'display_name': 'QTI Movable Words Sandbox Interaction',
        'display_label': 'QTI Movable Words Sandbox Interaction',
        'description': 'A QTI Movable Words Sandbox Interaction question',
        'domain': 'assessment.Question'},
    'qti-order-interaction-object-manipulation': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-order-interaction-object-manipulation',
        'display_name': 'QTI Object Manipulation Interaction',
        'display_label': 'QTI Object Manipulation Interaction',
        'description': 'A QTI Object Manipulation Interaction question',
        'domain': 'assessment.Question'},
    'qti-extended-text-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-extended-text-interaction',
        'display_name': 'QTI Extended Text Interaction',
        'display_label': 'QTI Extended Text Interaction',
        'description': 'A QTI Extended Text Interaction question',
        'domain': 'assessment.Question'},
    'qti-inline-choice-interaction-mw-fill-in-the-blank': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-inline-choice-interaction-mw-fill-in-the-blank',
        'display_name': 'QTI Movable Words Fill-in-the-Blank Interaction',
        'display_label': 'QTI Movable Words Fill-in-the-Blank Interaction',
        'description': 'A QTI Movable Words Fill-in-the-Blank Interaction question',
        'domain': 'assessment.Question'},
    'qti-numeric-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'qti-numeric-response',
        'display_name': 'QTI Numeric Response',
        'display_label': 'QTI Numeric Response',
        'description': 'A QTI Numeric Response question',
        'domain': 'assessment.Question'},
    'drag-and-drop': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-type',
        'identifier': 'drag-and-drop',
        'display_name': 'Drag and Drop',
        'display_label': 'Drag and Drop',
        'description': 'A Drag and Drop question',
        'domain': 'assessment.Question'},
}

QUESTION_RECORD_TYPES = {
    'short-text-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'short-text-answer',
        'display_name': 'Short Text Answer Question',
        'display_label': 'Short Text Answer Question',
        'description': 'Assessment Question record  for Questions that ' +
                       'require a short text Answer',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.text_answer_records',
        'object_record_class_name': 'ShortTextAnswerQuestionRecord',
        'form_record_class_name': 'ShortTextAnswerQuestionFormRecord'},

    'short-text-answers': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'short-text-answers',
        'display_name': 'Short Text Answers Question',
        'display_label': 'Short Text Answers Question',
        'description': 'Assessment Question record  for Questions that ' +
                       'require multiple short text Answers',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.text_answer_records',
        'object_record_class_name': 'ShortTextAnswersQuestionRecord',
        'form_record_class_name': 'ShortTextAnswersQuestionFormRecord'},

    'extended-text-answer': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'extended-text-answer',
        'display_name': 'Response String Question',
        'display_label': 'Response String Question',
        'description': 'Assessment Question record  for Questions that require ' +
                       'an extended text Answer',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.text_answer_records',
        'object_record_class_name': 'ExtendedTextAnswerQuestionRecord',
        'form_record_class_name': 'ExtendedTextAnswerQuestionFormRecord'},

    'multi-choice-text': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-choice-text',
        'display_name': 'Multiple-Choice Text Question',
        'display_label': 'Multi-Choice Text Question',
        'description': 'Assessment Question record  for Questions that require a ' +
                       'multiple choice Answer',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiChoiceTextQuestionRecord',
        'form_record_class_name': 'MultiChoiceTextQuestionFormRecord'},

    'label-ortho-faces': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'label-ortho-faces',
        'display_name': 'Label Orthographic Faces',
        'display_label': 'Label Orthographic Faces',
        'description': 'Assessment Question record extension for questions that ' +
                       'require labeling of the faces of a 3D object',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.' +
                       'orthographic_records',
        'object_record_class_name': 'LabelOrthoFacesQuestionRecord',
        'form_record_class_name': 'LabelOrthoFacesQuestionFormRecord'},

    'euler-rotation': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'euler-rotation',
        'display_name': 'Euler Rotation',
        'display_label': 'Euler Rotation',
        'description': 'Assessment Question record extension for questions that ' +
                       'require rotating a 3D object',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.' +
                       'orthographic_records',
        'object_record_class_name': 'EulerRotationQuestionRecord',
        'form_record_class_name': 'EulerRotationQuestionFormRecord'},

    'multi-choice-ortho': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-choice-ortho',
        'display_name': 'Multiple-Choice Orthographic Question',
        'display_label': 'Multi-Choice Ortho Question',
        'description': 'Assessment Question record extension for multiple choice ' +
                       'questions that include orthographic view set images',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.orthographic_visualization.' +
                       'multi_choice_records',
        'object_record_class_name': 'MultiChoiceOrthoQuestionRecord',
        'form_record_class_name': 'MultiChoiceOrthoQuestionFormRecord'},

    'multi-choice-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-choice-edx',
        'display_name': 'edX Multiple-Choice Question',
        'display_label': 'edX Multi-Choice Question',
        'description': 'Assessment Question record extension for multiple choice ' +
                       'questions from edX',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.edx.multi_choice_records',
        'object_record_class_name': 'edXMultiChoiceQuestionRecord',
        'form_record_class_name': 'edXMultiChoiceQuestionFormRecord'},

    'numeric-response-edx': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'numeric-response-edx',
        'display_name': 'edX Numeric Response Question',
        'display_label': 'edX Numeric Response Question',
        'description': 'Assessment Question record extension for numeric response ' +
                       'questions from edX',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.edx.numeric_response_records',
        'object_record_class_name': 'edXNumericResponseQuestionRecord',
        'form_record_class_name': 'edXNumericResponseQuestionFormRecord'},

    'mecqbank-question': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'mecqbank-question',
        'display_name': 'MecQBank Generic Question',
        'display_label': 'MecQBank Generic Question',
        'description': 'Assessment Question record extension for generic MecQBank ' +
                       'questions',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.mecqbank.item_records',
        'object_record_class_name': 'MecQBankQuestionRecord',
        'form_record_class_name': 'MecQBankQuestionFormRecord'},

    'file-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'file-submission',
        'display_name': 'File Submission Question',
        'display_label': 'File Submission Question',
        'description': 'Assessment Question record for file submission',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.file_answer_records',
        'object_record_class_name': 'FileSubmissionQuestionRecord',
        'form_record_class_name': 'FileSubmissionQuestionFormRecord'},

    'files-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'files-submission',
        'display_name': 'Files Submission Question',
        'display_label': 'Files Submission Question',
        'description': 'Assessment Question record for files submission',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.file_answer_records',
        'object_record_class_name': 'FilesSubmissionQuestionRecord',
        'form_record_class_name': 'FilesSubmissionQuestionFormRecord'},

    'multi-choice-with-text-and-files': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-choice-with-text-and-files',
        'display_name': 'Text and Files Question',
        'display_label': 'Text and Files Question',
        'description': 'Assessment Question record with text and files',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiChoiceTextAndFilesQuestionRecord',
        'form_record_class_name': 'MultiChoiceTextAndFilesQuestionFormRecord'},
    'qti': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'qti',
        'display_name': 'QTI Question Record',
        'display_label': 'QTI Question Record',
        'description': 'An Question record that can import and export QTI',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.basic',
        'object_record_class_name': 'QTIQuestionRecord',
        'form_record_class_name': 'QTIQuestionFormRecord'},
    'files': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'files',
        'display_name': 'Files Question Record',
        'display_label': 'Files Question Record',
        'description': 'An Question record that includes files',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.simple_records',
        'object_record_class_name': 'FilesQuestionRecord',
        'form_record_class_name': 'FilesQuestionFormRecord'},
    'ordered-choice-text': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'ordered-choice-text',
        'display_name': 'Ordered-Choice Text Question',
        'display_label': 'Ordered-Choice Text Question',
        'description': 'Assessment Question record  for Questions that require a ' +
                       'multiple choice Answer of choices in specific order',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.ordered_choice_records',
        'object_record_class_name': 'OrderedChoiceTextQuestionRecord',
        'form_record_class_name': 'OrderedChoiceTextQuestionFormRecord'},
    'qti-extended-text-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'qti-extended-text-interaction',
        'display_name': 'QTI Extended Text Interaction Question',
        'display_label': 'QTI Extended Text Interaction Question',
        'description': 'Assessment Question record for Questions that require a ' +
                       'text Answer of choices in specific order',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.extended_text_interaction',
        'object_record_class_name': 'QTIExtendedTextAnswerQuestionRecord',
        'form_record_class_name': 'QTIExtendedTextAnswerQuestionFormRecord'},
    'qti-inline-choice-text': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'qti-inline-choice-text',
        'display_name': 'QTI Inline-Choice Text Question',
        'display_label': 'QTI Inline-Choice Text Question',
        'description': 'Assessment Question record  for Questions that require an ' +
                       'inline fill-in-the-blank Answer of choices in specific order',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.inline_choice_records',
        'object_record_class_name': 'InlineChoiceTextQuestionRecord',
        'form_record_class_name': 'InlineChoiceTextQuestionFormRecord'},
    'qti-numeric-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'qti-numeric-response',
        'display_name': 'QTI Numeric Response Question',
        'display_label': 'QTI Numeric Response Question',
        'description': 'Assessment Question record for Questions that use randomly generated variables',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.numeric_response_records',
        'object_record_class_name': 'CalculationInteractionQuestionRecord',
        'form_record_class_name': 'CalculationInteractionQuestionFormRecord'},
    'multi-language-question-string': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-question-string',
        'display_name': 'Multiple Languages in Question String',
        'display_label': 'Multiple Languages in Question String',
        'description': 'Assessment Question record for Questions with multiple languages in the question string',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.base_records',
        'object_record_class_name': 'MultiLanguageQuestionRecord',
        'form_record_class_name': 'MultiLanguageQuestionFormRecord'},
    'multi-language-multiple-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-multiple-choice',
        'display_name': 'Multiple Languages in Multiple Choice Choices',
        'display_label': 'Multiple Languages in Multiple Choice Choices',
        'description': 'Assessment Question record for Multiple Choice Questions with multiple languages in the choices',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.multi_choice_records',
        'object_record_class_name': 'MultiLanguageMultipleChoiceQuestionRecord',
        'form_record_class_name': 'MultiLanguageMultipleChoiceQuestionFormRecord'},
    'multi-language-ordered-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-ordered-choice',
        'display_name': 'Multiple Languages in Ordered Choice Choices',
        'display_label': 'Multiple Languages in Ordered Choice Choices',
        'description': 'Assessment Question record for Ordered Choice Questions with multiple languages in the choices',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.ordered_choice_records',
        'object_record_class_name': 'MultiLanguageOrderedChoiceQuestionRecord',
        'form_record_class_name': 'MultiLanguageOrderedChoiceQuestionFormRecord'},
    'multi-language-inline-choice': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-inline-choice',
        'display_name': 'Multiple Languages in Inline Choice Choices',
        'display_label': 'Multiple Languages in Inline Choice Choices',
        'description': 'Assessment Question record for Inline Choice Questions with multiple languages in the choices',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.inline_choice_records',
        'object_record_class_name': 'MultiLanguageInlineChoiceQuestionRecord',
        'form_record_class_name': 'MultiLanguageInlineChoiceQuestionFormRecord'},
    'multi-language-text-interaction': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-text-interaction',
        'display_name': 'Multiple Languages in Text Interaction',
        'display_label': 'Multiple Languages in Text Interaction',
        'description': 'Assessment Question record for Text Interaction Questions with multiple languages',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.extended_text_interaction',
        'object_record_class_name': 'MultiLanguageQTIExtendedTextAnswerQuestionRecord',
        'form_record_class_name': 'MultiLanguageQTIExtendedTextAnswerQuestionFormRecord'},
    'multi-language-file-submission': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-file-submission',
        'display_name': 'Multi Language File Submission Question',
        'display_label': 'Multi Language File Submission Question',
        'description': 'Assessment Question record for multi-language file submission',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.file_answer_records',
        'object_record_class_name': 'MultiLanguageFileSubmissionQuestionRecord',
        'form_record_class_name': 'MultiLanguageFileSubmissionQuestionFormRecord'},
    'multi-language-numeric-response': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-numeric-response',
        'display_name': 'Multi Language Numeric Response Question',
        'display_label': 'Multi Language Numeric Response Question',
        'description': 'Assessment Question record for multi-language numeric response',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.qti.numeric_response_records',
        'object_record_class_name': 'MultiLanguageCalculationInteractionQuestionRecord',
        'form_record_class_name': 'MultiLanguageCalculationInteractionQuestionFormRecord'},
    'multi-language-drag-and-drop': {
        'authority': 'ODL.MIT.EDU',
        'namespace': 'question-record-type',
        'identifier': 'multi-language-drag-and-drop',
        'display_name': 'Multiple Languages in Drag and Drop Elements',
        'display_label': 'Multiple Languages in Drag and Drop Elements',
        'description': 'Assessment Question record for Drag and Drop Questions with multiple languages in the various elements',
        'domain': 'assessment.Question',
        'module_path': 'dlkit.records.assessment.basic.drag_and_drop_records',
        'object_record_class_name': 'MultiLanguageDragAndDropQuestionRecord',
        'form_record_class_name': 'MultiLanguageDragAndDropQuestionFormRecord'},
}

QUESTION_RECORD_TYPES.update(osid_registry.__dict__.get('OSID_OBJECT_RECORD_TYPES', {}))

RESPONSE_RECORD_TYPES = ANSWER_RECORD_TYPES
