type Query { learning_path(id: ID, slug: String, course_id: ID, course_slug: String): LearningPathObjectType learning_content_media_library: LearningContentMediaLibraryObjectType learning_content_assignment: LearningContentAssignmentObjectType learning_content_attendance_course: LearningContentAttendanceCourseObjectType learning_content_feedback: LearningContentFeedbackObjectType learning_content_learning_module: LearningContentLearningModuleObjectType learning_content_placeholder: LearningContentPlaceholderObjectType learning_content_rich_text: LearningContentRichTextObjectType learning_content_test: LearningContentEdoniqTestObjectType learning_content_video: LearningContentVideoObjectType learning_content_document_list: LearningContentDocumentListObjectType course_session_attendance_course(id: ID!, assignment_user_id: ID): CourseSessionAttendanceCourseObjectType course(id: ID): CourseObjectType course_session(id: ID): CourseSessionObjectType competence_certificate(id: ID, slug: String): CompetenceCertificateObjectType competence_certificate_list(id: ID, slug: String, course_id: ID, course_slug: String): CompetenceCertificateListObjectType assignment(id: ID, slug: String): AssignmentObjectType assignment_completion(assignment_id: ID!, course_session_id: ID!, learning_content_page_id: ID, assignment_user_id: UUID): AssignmentCompletionObjectType } type LearningPathObjectType implements CoursePageInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType topics: [TopicObjectType!]! } interface CoursePageInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType } type CourseObjectType { id: ID! title: String! category_name: String! slug: String! } type TopicObjectType implements CoursePageInterface { is_visible: Boolean! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType circles: [CircleObjectType!]! } type CircleObjectType implements CoursePageInterface { description: String! goals: String! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType learning_sequences: [LearningSequenceObjectType!]! } type LearningSequenceObjectType implements CoursePageInterface { icon: String! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType learning_units: [LearningUnitObjectType!]! } type LearningUnitObjectType implements CoursePageInterface { title_hidden: Boolean! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType learning_contents: [LearningContentInterface!]! performance_criteria: [PerformanceCriteriaObjectType!]! evaluate_url: String! } interface LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type CircleLightObjectType { id: ID! title: String! slug: String! } type PerformanceCriteriaObjectType implements CoursePageInterface { competence_id: String! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType } type LearningContentMediaLibraryObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type LearningContentAssignmentObjectType implements CoursePageInterface & LearningContentInterface { content_assignment: AssignmentObjectType! assignment_type: LearnpathLearningContentAssignmentAssignmentTypeChoices! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType competence_certificate: CompetenceCertificateObjectType } type AssignmentObjectType implements CoursePageInterface { assignment_type: AssignmentAssignmentAssignmentTypeChoices! """ Muss der Auftrag durch eine Expertin oder einen Experten beurteilt werden? """ needs_expert_evaluation: Boolean! competence_certificate: CompetenceCertificateObjectType """Erläuterung der Ausgangslage""" intro_text: String! """Zeitaufwand als Text""" effort_required: String! """Beschreibung der Bewertung""" evaluation_description: String! """URL zum Beurteilungsinstrument""" evaluation_document_url: String! id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType tasks: JSONStreamField evaluation_tasks: JSONStreamField performance_objectives: JSONStreamField max_points: Int learning_content: LearningContentInterface completion(course_session_id: ID!, learning_content_page_id: ID, assignment_user_id: UUID): AssignmentCompletionObjectType } """An enumeration.""" enum AssignmentAssignmentAssignmentTypeChoices { """CASEWORK""" CASEWORK """PREP_ASSIGNMENT""" PREP_ASSIGNMENT """REFLECTION""" REFLECTION """CONDITION_ACCEPTANCE""" CONDITION_ACCEPTANCE """EDONIQ_TEST""" EDONIQ_TEST } type CompetenceCertificateObjectType implements CoursePageInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType assignments: [AssignmentObjectType!]! } scalar JSONStreamField type AssignmentCompletionObjectType { id: UUID! created_at: DateTime! updated_at: DateTime! submitted_at: DateTime evaluation_submitted_at: DateTime evaluation_user: UserObjectType evaluation_points: Float evaluation_max_points: Float evaluation_passed: Boolean edoniq_extended_time_flag: Boolean! assignment_user: UserObjectType! assignment: AssignmentObjectType! course_session: CourseSessionObjectType! completion_status: AssignmentAssignmentCompletionCompletionStatusChoices! completion_data: GenericScalar additional_json_data: JSONString! task_completion_data: GenericScalar learning_content_page_id: ID } """ Leverages the internal Python implementation of UUID (uuid.UUID) to provide native UUID objects in fields, resolvers and input. """ scalar UUID """ The `DateTime` scalar type represents a DateTime value as specified by [iso8601](https://en.wikipedia.org/wiki/ISO_8601). """ scalar DateTime type UserObjectType { """ Erforderlich. 150 Zeichen oder weniger. Nur Buchstaben, Ziffern und @/./+/-/_. """ username: String! first_name: String! last_name: String! id: UUID! avatar_url: String! email: String! language: CoreUserLanguageChoices! } """An enumeration.""" enum CoreUserLanguageChoices { """Deutsch""" DE """Français""" FR """Italiano""" IT } type CourseSessionObjectType { id: ID! created_at: DateTime! updated_at: DateTime! course: CourseObjectType! title: String! start_date: Date end_date: Date attendance_courses: [CourseSessionAttendanceCourseObjectType!]! assignments: [CourseSessionAssignmentObjectType!]! edoniq_tests: [CourseSessionEdoniqTestObjectType!]! users: [CourseSessionUserObjectsType!]! } """ The `Date` scalar type represents a Date value as specified by [iso8601](https://en.wikipedia.org/wiki/ISO_8601). """ scalar Date type CourseSessionAttendanceCourseObjectType { id: ID! learning_content: LearningContentAttendanceCourseObjectType! due_date: DueDateObjectType location: String! trainer: String! course_session_id: ID learning_content_id: ID attendance_user_list: [AttendanceUserObjectType] } type LearningContentAttendanceCourseObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type DueDateObjectType { id: ID! """Startdatum ist Pflicht""" start: DateTime """Enddatum ist optional""" end: DateTime """Nur aktivieren, wenn man die Felder manuell überschreiben will""" manual_override_fields: Boolean! """Title wird standarmässig vom LearningContent übernommen""" title: String! """Translation Key aus dem Frontend""" assignment_type_translation_key: String! """Translation Key aus dem Frontend""" date_type_translation_key: String! """ Überschreibt den Untertitel bei `assignment_type_translation_key` und `date_type_translation_key` """ subtitle: String! """ URL wird vom LearningContent übernommen (sichtbar für Member/Teilnehmer) """ url: String! course_session: CourseSessionObjectType! } type AttendanceUserObjectType { user_id: UUID! status: AttendanceUserStatus! first_name: String last_name: String email: String } """An enumeration.""" enum AttendanceUserStatus { PRESENT ABSENT } type CourseSessionAssignmentObjectType { id: ID! learning_content: LearningContentAssignmentObjectType! submission_deadline: DueDateObjectType evaluation_deadline: DueDateObjectType course_session_id: ID! learning_content_id: ID! } type CourseSessionEdoniqTestObjectType { id: ID! learning_content: LearningContentEdoniqTestObjectType! deadline: DueDateObjectType course_session_id: ID! learning_content_id: ID! } type LearningContentEdoniqTestObjectType implements CoursePageInterface & LearningContentInterface { checkbox_text: String! content_assignment: AssignmentObjectType id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType competence_certificate: CompetenceCertificateObjectType } type CourseSessionUserObjectsType { id: UUID! role: CourseCourseSessionUserRoleChoices! user_id: UUID! first_name: String! last_name: String! email: String! avatar_url: String! circles: [CourseSessionUserExpertCircleType!]! } """An enumeration.""" enum CourseCourseSessionUserRoleChoices { """Teilnehmer""" MEMBER """Experte/Trainer""" EXPERT """Lernbegleitung""" TUTOR } type CourseSessionUserExpertCircleType { id: ID! title: String! slug: String! } """An enumeration.""" enum AssignmentAssignmentCompletionCompletionStatusChoices { """IN_PROGRESS""" IN_PROGRESS """SUBMITTED""" SUBMITTED """EVALUATION_IN_PROGRESS""" EVALUATION_IN_PROGRESS """EVALUATION_SUBMITTED""" EVALUATION_SUBMITTED } """ The `GenericScalar` scalar type represents a generic GraphQL scalar value that could be: String, Boolean, Int, Float, List or Object. """ scalar GenericScalar """ Allows use of a JSON String for input / output from the GraphQL schema. Use of this type is *not recommended* as you lose the benefits of having a defined, static schema (one of the key benefits of GraphQL). """ scalar JSONString """An enumeration.""" enum LearnpathLearningContentAssignmentAssignmentTypeChoices { """CASEWORK""" CASEWORK """PREP_ASSIGNMENT""" PREP_ASSIGNMENT """REFLECTION""" REFLECTION """CONDITION_ACCEPTANCE""" CONDITION_ACCEPTANCE """EDONIQ_TEST""" EDONIQ_TEST } type LearningContentFeedbackObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type LearningContentLearningModuleObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type LearningContentPlaceholderObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type LearningContentRichTextObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type LearningContentVideoObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type LearningContentDocumentListObjectType implements CoursePageInterface & LearningContentInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType minutes: Int description: String! content_url: String! can_user_self_toggle_course_completion: Boolean! circle: CircleLightObjectType } type CompetenceCertificateListObjectType implements CoursePageInterface { id: ID! title: String! slug: String! content_type: String! live: Boolean! translation_key: String! frontend_url: String! course: CourseObjectType competence_certificates: [CompetenceCertificateObjectType!]! } type Mutation { send_feedback(course_session_id: ID!, data: GenericScalar, learning_content_page_id: ID!, submitted: Boolean = false): SendFeedbackMutation update_course_session_attendance_course_users(attendance_user_list: [AttendanceUserInputType]!, id: ID!): AttendanceCourseUserMutation upsert_assignment_completion(assignment_id: ID!, assignment_user_id: UUID, completion_data_string: String, completion_status: AssignmentCompletionStatus, course_session_id: ID!, evaluation_passed: Boolean, evaluation_points: Float, initialize_completion: Boolean, learning_content_page_id: ID): AssignmentCompletionMutation } type SendFeedbackMutation { feedback_response: FeedbackResponseObjectType """May contain more than one error for same field.""" errors: [ErrorType] } type FeedbackResponseObjectType { id: UUID! data: GenericScalar submitted: Boolean! } type ErrorType { field: String! messages: [String!]! } type AttendanceCourseUserMutation { course_session_attendance_course: CourseSessionAttendanceCourseObjectType } input AttendanceUserInputType { user_id: UUID! status: AttendanceUserStatus! } type AssignmentCompletionMutation { assignment_completion: AssignmentCompletionObjectType } """An enumeration.""" enum AssignmentCompletionStatus { IN_PROGRESS SUBMITTED EVALUATION_IN_PROGRESS EVALUATION_SUBMITTED }