Ce guide explique comment créer des pièces jointes de modules complémentaires sur votre site Web ou votre application. Les interactions sont semblables à la création de devoirs à l'aide des points de terminaison de l'API CourseWork. Implémentez ce parcours pour permettre aux utilisateurs de créer des pièces jointes de module complémentaire à partir de votre site Web ou de votre application.
Workflow
Dans les grandes lignes, le processus de création de pièces jointes se déroule comme suit:
- Un enseignant ouvre votre site Web ou votre application. Il sélectionne un contenu à attribuer à ses élèves.
- Vérifiez que l'utilisateur peut créer des pièces jointes de module complémentaire.
- Si l'utilisateur ne peut pas créer de pièces jointes de module complémentaire, créez un devoir CourseWork avec l'URL du contenu sélectionné sous forme de support de lien.
- Si l'utilisateur peut créer des pièces jointes de module complémentaire, procédez comme suit :
- Créez un devoir.
- Créez une pièce jointe de module complémentaire liée au contenu sélectionné, puis associez-la au nouveau devoir.
- 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 module complémentaire
Vous pouvez créer des pièces jointes de module complémentaire au nom d'un utilisateur éligible. Un utilisateur éligible est un enseignant du cours dans lequel vous essayez de créer des devoirs CourseWork et qui dispose d'une licence Teaching and Learning Upgrade ou Education Plus ou Education Plus pour l'édition Google Workspace for Education.
Commencez par déterminer si l'utilisateur peut créer des modules complémentaires dans un Course
donné.
Envoyez une requête au point de terminaison courses.checkAddOnCreationEligibility
, y compris 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 module complémentaire, créez une attribution CourseWork
avec l'URL de contenu sélectionnée par l'utilisateur en tant que 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 dans le cours demandé avec le contenu joint. Les utilisateurs peuvent cliquer sur Link
pour ouvrir le contenu de votre site dans un nouvel onglet.
Figure 1. Vue enseignant d'un brouillon de devoir CourseWork avec un support de lien.
Utilisateur éligible
Procédez comme suit si l'utilisateur peut créer des pièces jointes de module complémentaire.
- Créer un devoir
CourseWork
sans pièce jointe - Créez une pièce jointe de module complémentaire.
- Définissez le
itemId
duAddOnAttachment
sur leid
de l'attribution nouvellement créée. - Veillez à fournir les URL du contenu sélectionné par l'utilisateur pour chaque vue compatible.
- Définissez le
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 forme de carte associée à une pièce jointe dans Classroom. Les URL spécifiées dans la requête s'ouvrent dans l'iFrame correspondant à chaque vue.