Créer des pièces jointes en dehors de Google Classroom

Ce guide explique comment créer des pièces jointes de modules complémentaires sur votre site Web ou dans votre application. Les interactions sont semblables à la création de devoirs à l'aide des points de terminaison de l'API CourseWork. Suivez cette procédure pour permettre aux utilisateurs de créer des pièces jointes de modules complémentaires à partir de votre site Web ou application.

Workflow

De manière générale, le processus de création d'un rattachement suit l'ordre suivant:

  1. Un enseignant ouvre votre site Web ou votre application. Il sélectionne un contenu à attribuer à ses élèves.
  2. Vérifiez que l'utilisateur peut créer des pièces jointes de modules complémentaires.
  3. Si l'utilisateur ne peut pas créer de pièces jointes de modules complémentaires, créez un devoir CourseWork avec l'URL du contenu sélectionné sous forme de lien Material.
  4. Si l'utilisateur peut créer des pièces jointes de modules complémentaires, procédez comme suit :
    1. Créez un devoir.
    2. Créez une pièce jointe de module complémentaire liée au contenu sélectionné et associez-la au nouveau devoir.
    3. Informez l'enseignant que le devoir a bien été créé.

Chaque action est décrite dans les sections suivantes.

Vérifier si un utilisateur peut créer des pièces jointes de modules complémentaires

Vous pouvez créer des pièces jointes de modules complémentaires au nom d'un utilisateur éligible. Un utilisateur éligible est un enseignant dans le cours dans lequel vous essayez de créer des devoirs CourseWork et qui dispose d'une licence Teaching and Learning Upgrade ou Education Plus de Google Workspace for Education.

Commencez par déterminer si l'utilisateur peut créer des modules complémentaires dans une Course donnée. Envoyez une requête au point de terminaison courses.checkAddOnCreationEligibility, en incluant l'ID du cours.

Python

eligibility_response = (
  classroom_service.courses()
  .checkAddOnCreationEligibility(courseId=course_id)
  .execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('isCreateAttachmentEligible')
)
print(f'User eligibility for course {eligibility_response.get("courseId")}'
      f': {is_create_attachment_eligible}.')

Si l'utilisateur est éligible, la réponse contient la valeur booléenne isCreateAttachmentEligible définie sur true. Si l'utilisateur n'est pas éligible, la réponse ne renvoie pas la valeur booléenne isCreateAttachmentEligible.

Rediriger l'utilisateur en fonction de son éligibilité

L'éligibilité détermine si vous pouvez créer des pièces jointes de modules complémentaires pour un utilisateur.

Utilisateur non éligible

Si l'utilisateur ne peut pas créer de pièces jointes de modules complémentaires, créez une attribution CourseWork avec l'URL de contenu sélectionnée par l'utilisateur sous forme de Link.

Python

if not is_create_attachment_eligible:
  coursework = {
    'title': 'My CourseWork Assignment with Link Material',
    'description': 'Created using the Classroom CourseWork API.',
    'workType': 'ASSIGNMENT',
    'state': 'DRAFT',  # Set to 'PUBLISHED' to assign to students.
    'maxPoints': 100,
    'materials': [
      {'link': {'url': my_content_url}}
    ]
  }

  assignment = (
    service.courses()
    .courseWork()
    .create(courseId=course_id, body=coursework)
    .execute()
  )

  print(
    f'Link Material assignment created with ID: {assignment.get("id")}'
  )

La réponse contient un devoir du cours demandé avec le contenu en pièce jointe. Les utilisateurs peuvent cliquer sur le Link pour ouvrir le contenu de votre site dans un nouvel onglet.

Rédigez un brouillon de devoir CourseWork avec Link Material

Figure 1. Vue enseignante d'un brouillon de devoir CourseWork avec Link Material.

Utilisateur éligible

Procédez comme suit si l'utilisateur peut créer des pièces jointes de modules complémentaires.

  1. Créez un devoir CourseWork sans pièce jointe.
  2. Créez une pièce jointe de module complémentaire.

Python

if is_create_attachment_eligible:
  coursework = {
    'title': 'My CourseWork Assignment with Add-on Attachment',
    'description': 'Created using the Classroom CourseWork API.',
    'workType': 'ASSIGNMENT',
    'state': 'DRAFT',  # Set to 'PUBLISHED' to assign to students.
    'maxPoints': 100,
  }

  assignment = (
    classroom_service.courses()
    .courseWork()
    .create(courseId=course_id, body=coursework)
    .execute()
  )

  print(
    f'Empty assignment created with ID: {assignment.get("id")}'
  )

  attachment = {
    'teacherViewUri': {'uri': teacher_view_url},
    'studentViewUri': {'uri': student_view_url},
    'studentWorkReviewUri': {'uri': grade_student_work_url},
    'title': f'Test Attachment {test_label}',
  }

  add_on_attachment = (
    service.courses()
    .courseWork()
    .addOnAttachments()
    .create(
      courseId=course_id,
      itemId=assignment.get("id"),  # ID of the new assignment.
      body=attachment,
    )
    .execute()
  )

  print(
    f'Add-on attachment created with ID: {add_on_attachment.get("id")}'
  )

Le module complémentaire apparaît sous la forme d'une fiche associée dans Classroom. Les URL spécifiées dans la requête s'ouvrent dans l'iFrame correspondant à chaque vue.