इस गाइड में, Google Classroom API में ग्रेडिंग पीरियड एंडपॉइंट का इस्तेमाल करने का तरीका बताया गया है.
खास जानकारी
ग्रेडिंग की अवधियां, होमवर्क, क्विज़, और प्रोजेक्ट को तारीख की तय सीमाओं में व्यवस्थित करने के लिए बनाई जाती हैं. Classroom API की मदद से, डेवलपर एडमिन और शिक्षकों की ओर से, Classroom में ग्रेडिंग पीरियड बना सकते हैं, उनमें बदलाव कर सकते हैं, और उन्हें पढ़ सकते हैं. Classroom API का इस्तेमाल करके, CourseWork में ग्रेड देने की अवधि भी सेट की जा सकती है.
Classroom API, किसी कोर्स में ग्रेड देने की अवधि की जानकारी को पढ़ने और उसमें बदलाव करने के लिए, दो एंडपॉइंट उपलब्ध कराता है:
GetGradingPeriodSettings
: इससे आपको किसी कोर्स में ग्रेड देने की अवधि की सेटिंग पढ़ने में मदद मिलती है.UpdateGradingPeriodSettings
: इससे आपको किसी कोर्स में ग्रेड देने की अवधि की सेटिंग मैनेज करने की सुविधा मिलती है. इसके लिए, आपको ग्रेड देने की अवधि जोड़नी होगी, उनमें बदलाव करना होगा, और उन्हें मिटाना होगा. साथ ही, कॉन्फ़िगर की गई ग्रेड देने की अवधि को सभी मौजूदा कोर्सवर्क पर लागू करना होगा.
लाइसेंस से जुड़ी ज़रूरी शर्तें
किसी कोर्स में ग्रेडिंग पीरियड की सेटिंग में बदलाव करना
UpdateGradingPeriodSettings
एंडपॉइंट का इस्तेमाल करके, किसी कोर्स में ग्रेड देने की अवधियां बनाने, उनमें बदलाव करने या उन्हें मिटाने के लिए, ये शर्तें पूरी करनी होंगी:
- अनुरोध करने वाले उपयोगकर्ता के पास Google Workspace for Education Plus का लाइसेंस हो.
- कोर्स के मालिक के पास Google Workspace for Education Plus का लाइसेंस हो.
किसी कोर्स में ग्रेडिंग पीरियड की सेटिंग पढ़ना
किसी कोर्स के डोमेन एडमिन और शिक्षक, ग्रेडिंग की अवधि की सेटिंग को पढ़ सकते हैं. भले ही, उन्हें कोई भी लाइसेंस असाइन किया गया हो. इसका मतलब है कि GetGradingPeriodSettings
एंडपॉइंट के लिए किए गए अनुरोधों को, किसी भी डोमेन एडमिन या शिक्षक की ओर से अनुमति दी जाती है.
CourseWork पर ग्रेडिंग पीरियड का आईडी सेट करना
किसी कोर्स के शिक्षक, एपीआई का इस्तेमाल करके कोर्सवर्क बनाते या अपडेट करते समय gradingPeriodId
शामिल कर सकते हैं. भले ही, उन्हें कोई भी लाइसेंस असाइन किया गया हो.
ग्रेडिंग की अवधियां सेट अप करने के लिए, किसी उपयोगकर्ता की ज़रूरी शर्तें देखना
checkGradingPeriodsSetupEligibility
एंडपॉइंट के लिए अनुरोध करने की अनुमति, किसी भी एडमिन या शिक्षक की ओर से दी जाती है. इसका इस्तेमाल करके यह तय करें कि उपयोगकर्ता, कोर्स में ग्रेड देने की अवधियों में बदलाव कर सकता है या नहीं.
ज़रूरी शर्तें
इस गाइड में Python में कोड के उदाहरण दिए गए हैं. साथ ही, यह माना गया है कि:
- Google Cloud प्रोजेक्ट. Python के बारे में शुरुआती जानकारी में दिए गए निर्देशों का पालन करके, इसे सेट अप किया जा सकता है.
- आपके प्रोजेक्ट की OAuth सहमति स्क्रीन में ये स्कोप जोड़े गए हैं:
https://www.googleapis.com/auth/classroom.courses
https://www.googleapis.com/auth/classroom.coursework.students
- उस कोर्स का आईडी जिसमें ग्रेड देने की अवधियों में बदलाव करना है. कोर्स के मालिक के पास Google Workspace for Education Plus का लाइसेंस होना चाहिए.
- Google Workspace for Education Plus लाइसेंस वाले शिक्षक या एडमिन के क्रेडेंशियल का ऐक्सेस. कोर्सवर्क बनाने या उसमें बदलाव करने के लिए, आपके पास शिक्षक के क्रेडेंशियल होने चाहिए. अगर एडमिन कोर्स में शिक्षक नहीं हैं, तो वे कोर्सवर्क नहीं बना सकते या उसमें बदलाव नहीं कर सकते.
GradingPeriodSettings
संसाधन को मैनेज करना
GradingPeriodSettings
संसाधन में, अलग-अलग GradingPeriods
की सूची और applyToExistingCoursework
नाम का बूलियन फ़ील्ड शामिल होता है.
GradingPeriods
सूची, किसी कोर्स में ग्रेड देने की सभी अवधियों की जानकारी देती है. आपको सूची में, ग्रेड देने की हर अवधि के लिए टाइटल, शुरू होने की तारीख, और खत्म होने की तारीख देनी होगी. कोर्स में ग्रेड देने की हर अवधि का टाइटल अलग होना चाहिए. साथ ही, ग्रेड देने की अलग-अलग अवधियों की शुरू और खत्म होने की तारीखें एक-दूसरे से ओवरलैप नहीं होनी चाहिए. हर ग्रेडिंग अवधि का अपना Classroom API से असाइन किया गया आइडेंटिफ़ायर होगा.
applyToExistingCoursework
बूलियन एक ऐसी सेटिंग है जो सेव रहती है. इसकी मदद से, पहले से बनाए गए कोर्सवर्क को ग्रेडिंग पीरियड में व्यवस्थित किया जा सकता है. इसके लिए, हर कोर्सवर्क के लिए gradingPeriodId
में बदलाव करने के लिए, अलग से एपीआई कॉल करने की ज़रूरत नहीं होती. अगर इसे True
पर सेट किया गया है, तो Classroom सभी मौजूदा CourseWork पर gradingPeriodId
को अपने-आप सेट कर देगा. ऐसा तब होगा, जब courseWork.dueDate
, ग्रेड देने की मौजूदा अवधि के शुरू और खत्म होने की तारीखों के बीच होगा. अगर कोर्सवर्क के लिए, सबमिट करने की कोई तारीख सेट नहीं की गई है, तो Classroom courseWork.scheduledTime
का इस्तेमाल करेगा. अगर कोई भी फ़ील्ड मौजूद नहीं है याग्रेडिंग की किसी मौजूदा अवधि के शुरू और खत्म होने की तारीखों से कोई मैच नहीं होता है, तो कोर्सवर्क को किसी भी ग्रेडिंग अवधि से नहीं जोड़ा जाएगा.
यह तय करना कि कोई उपयोगकर्ता, कोर्स में ग्रेड देने की अवधि की सेटिंग में बदलाव कर सकता है या नहीं
Classroom में ग्रेडिंग की अवधियां बनाने और उनमें बदलाव करने की सुविधा, सिर्फ़ खास लाइसेंस वाले उपयोगकर्ताओं के लिए उपलब्ध है. इसलिए, Classroom API में checkGradingPeriodsSetupEligibility
एंडपॉइंट दिया गया है. इससे यह तय करने में मदद मिलती है कि कोई उपयोगकर्ता, UpdateGradingPeriodSettings
एंडपॉइंट से अनुरोध कर सकता है या नहीं.
Python
def check_grading_period_setup_eligibility(classroom, course_id):
"""Checks whether a user is able to create and modify grading periods in a course."""
try:
grading_period_eligibility_response = classroom.courses().checkGradingPeriodsSetupEligibility(
courseId=course_id, previewVersion="V1_20240401_PREVIEW").execute()
# Retrieve the isGradingPeriodsSetupEligible boolean from the response.
# If the boolean is `True`, the user is able to modify grading period settings in the course.
is_grading_periods_eligible = grading_period_eligibility_response.get("isGradingPeriodsSetupEligible")
return is_grading_periods_eligible
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
ग्रेडिंग पीरियड जोड़ना
अब आपके पास यह पक्का करने का विकल्प है कि उपयोगकर्ता के पास कोर्स में ग्रेड देने की अवधि की सेटिंग में बदलाव करने के लिए ज़रूरी लाइसेंस है या नहीं. इसके बाद, UpdateGradingPeriodSettings
एंडपॉइंट को अनुरोध भेजे जा सकते हैं. GradingPeriodSettings
संसाधन में कोई भी बदलाव करने के लिए, UpdateGradingPeriodSettings
एंडपॉइंट का इस्तेमाल किया जाता है. भले ही, आपने ग्रेड देने की अलग-अलग अवधियां जोड़ी हों, मौजूदा ग्रेड देने की अवधियों में बदलाव किया हो या ग्रेड देने की अवधि मिटाई हो.
Python
नीचे दिए गए उदाहरण में, ग्रेड देने की दो अवधियों को शामिल करने के लिए, gradingPeriodSettings
संसाधन में बदलाव किया गया है. applyToExistingCoursework
बूलियन को True
पर सेट किया गया है. इससे, ग्रेड देने की किसी अवधि के शुरू और खत्म होने की तारीख के बीच मौजूद किसी भी मौजूदा कोर्सवर्क के gradingPeriodId
में बदलाव होगा. ध्यान दें कि updateMask
में दोनों फ़ील्ड शामिल होते हैं. जवाब में आईडी मिलने के बाद, अलग-अलग ग्रेडिंग अवधियों के लिए आईडी सेव करें. अगर ज़रूरी हो, तो ग्रेडिंग की अवधियों को अपडेट करने के लिए, आपको इन आईडी का इस्तेमाल करना होगा.
def create_grading_periods(classroom, course_id):
"""
Create grading periods in a course and apply the grading periods
to existing courseWork.
"""
try:
body = {
"gradingPeriods": [
{
"title": "First Semester",
"start_date": {
"day": 1,
"month": 9,
"year": 2023
},
"end_date": {
"day": 15,
"month": 12,
"year": 2023
}
},
{
"title": "Second Semester",
"start_date": {
"day": 15,
"month": 1,
"year": 2024
},
"end_date": {
"day": 31,
"month": 5,
"year": 2024
}
}
],
"applyToExistingCoursework": True
}
gradingPeriodSettingsResponse = classroom.courses().updateGradingPeriodSettings(
courseId=course_id,
updateMask='gradingPeriods,applyToExistingCoursework',
body=body,
previewVersion="V1_20240401_PREVIEW"
).execute();
print(f"Grading period settings updated.")
return gradingPeriodSettingsResponse
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
ग्रेडिंग पीरियड की सेटिंग पढ़ना
GradingPeriodSettings
को GetGradingPeriodSettings
एंडपॉइंट का इस्तेमाल करके पढ़ा जाता है.
किसी भी लाइसेंस वाला कोई भी उपयोगकर्ता, कोर्स में ग्रेड देने की अवधि की सेटिंग पढ़ सकता है.
Python
def get_grading_period_settings(classroom, course_id):
"""Read grading periods settings in a course."""
try:
gradingPeriodSettings = classroom.courses().getGradingPeriodSettings(
courseId=course_id, previewVersion="V1_20240401_PREVIEW").execute()
return gradingPeriodSettings
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
सूची में अलग-अलग ग्रेडिंग पीरियड जोड़ना
ग्रेडिंग की किसी अवधि में बदलाव करने के लिए, रीड-बदलाव करें-लिखें पैटर्न का पालन करना ज़रूरी है. इसका मतलब है कि आपको:
GetGradingPeriodSettings
एंडपॉइंट का इस्तेमाल करके,GradingPeriodSettings
रिसॉर्स में ग्रेडिंग की अवधियों की सूची पढ़ें.- ग्रेडिंग की अवधियों की सूची में, चुने गए बदलाव करें.
UpdateGradingPeriodSettings
को अनुरोध में, ग्रेडिंग पीरियड की नई सूची भेजें.
इस पैटर्न से आपको यह पक्का करने में मदद मिलेगी कि किसी कोर्स में, ग्रेड देने की अलग-अलग अवधियों के टाइटल अलग-अलग हों. साथ ही, ग्रेड देने की अवधियों के शुरू और खत्म होने की तारीखों में कोई ओवरलैप न हो.
ग्रेडिंग की अवधियों की सूची को अपडेट करने के बारे में ये नियम ध्यान में रखें:
- बिना आईडी के सूची में जोड़े गए ग्रेडिंग पीरियड को जोड़े गए ग्रेडिंग पीरियड माना जाता है.
- सूची में ग्रेडिंग की अवधियों के मौजूद न होने का मतलब है कि उन्हें मिटाया गया है.
- ग्रेडिंग की अवधियों को मौजूदा आईडी के साथ, लेकिन बदले गए डेटा को बदलाव माना जाता है. जिन प्रॉपर्टी में बदलाव नहीं किया गया है उन्हें वैसे ही छोड़ दिया जाता है.
- नए या अज्ञात आईडी वाली ग्रेडिंग अवधियों को गड़बड़ियां माना जाता है.
Python
नीचे दिया गया कोड, इस गाइड में दिए गए उदाहरण पर आधारित होगा. "ग्रीष्मकाल" टाइटल के साथ, ग्रेड देने की एक नई अवधि बनाई गई है. अनुरोध के मुख्य हिस्से में, applyToExistingCoursework
बोलियन को False
पर सेट किया गया है.
ऐसा करने के लिए, मौजूदा GradingPeriodSettings
को पढ़ा जाता है, सूची में ग्रेडिंग की नई अवधि जोड़ी जाती है, और applyToExistingCoursework
बूलियन को False
पर सेट किया जाता है. ध्यान दें कि मौजूदा कोर्सवर्क पर पहले से लागू किए गए ग्रेडिंग पीरियड नहीं हटाए जाएंगे. पिछले उदाहरण में, "सेमेस्टर 1" और "सेमेस्टर 2" ग्रेडिंग की अवधियां, मौजूदा कोर्सवर्क पर पहले से ही लागू थीं. अगर अगले अनुरोधों में applyToExistingCoursework
को 'गलत' पर सेट किया जाता है, तो इन्हें कोर्सवर्क से नहीं हटाया जाएगा.
def add_grading_period(classroom, course_id):
"""
A new grading period is added to the list, but it is not applied to existing courseWork.
"""
try:
# Use the `GetGradingPeriodSettings` endpoint to retrieve the existing
# grading period IDs. You will need to include these IDs in the request
# body to make sure existing grading periods aren't deleted.
body = {
"gradingPeriods": [
{
# Specify the ID to make sure the grading period is not deleted.
"id": "FIRST_SEMESTER_GRADING_PERIOD_ID",
"title": "First Semester",
"start_date": {
"day": 1,
"month": 9,
"year": 2023
},
"end_date": {
"day": 15,
"month": 12,
"year": 2023
}
},
{
# Specify the ID to make sure the grading period is not deleted.
"id": "SECOND_SEMESTER_GRADING_PERIOD_ID",
"title": "Second Semester",
"start_date": {
"day": 15,
"month": 1,
"year": 2024
},
"end_date": {
"day": 31,
"month": 5,
"year": 2024
}
},
{
# Does not include an ID because this grading period is an addition.
"title": "Summer",
"start_date": {
"day": 1,
"month": 6,
"year": 2024
},
"end_date": {
"day": 31,
"month": 8,
"year": 2024
}
}
],
"applyToExistingCoursework": False
}
gradingPeriodSettings = classroom.courses().updateGradingPeriodSettings(
courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework',
previewVersion="V1_20240401_PREVIEW").execute()
return gradingPeriodSettings
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
applyToExistingCoursework
बूलियन फ़ील्ड के बारे में मददगार जानकारी
यह ध्यान रखना ज़रूरी है कि applyToExistingCoursework
बूलियन बनी रहती है. इसका मतलब है कि अगर एपीआई के पिछले कॉल में बूलियन को True
पर सेट किया गया था और उसे नहीं बदला गया था, तो ग्रेडिंग की अवधियों के बाद के अपडेट, मौजूदा कोर्सवर्क पर लागू होंगे.
ध्यान दें कि अगर आपने UpdateGradingPeriodSettings
के अनुरोध में, इस बूलियन वैल्यू को True
से False
में बदला है, तो GradingPeriodSettings
में किए जा रहे नए बदलाव, मौजूदा CourseWork पर लागू नहीं होंगे. अगर बुलियन को True
पर सेट किया गया था, तो पिछले एपीआई कॉल में कोर्सवर्क पर लागू की गई ग्रेडिंग अवधि की जानकारी नहीं हटाई जाएगी. इस बूलियन सेटिंग के बारे में सोचने का एक मददगार तरीका यह है कि यह मौजूदा कोर्सवर्क को, ग्रेड देने के लिए कॉन्फ़िगर की गई अवधियों से जोड़ने की सुविधा देता है. हालांकि, यह कोर्सवर्क और ग्रेड देने के लिए कॉन्फ़िगर की गई अवधियों के बीच मौजूदा असोसिएशन को हटाने की सुविधा नहीं देता.
अगर ग्रेडिंग की अवधि का टाइटल मिटाया जाता है या बदला जाता है, तो ये बदलाव सभी मौजूदा CourseWork में लागू हो जाएंगे. भले ही, applyToExistingCoursework
बूलियन की सेटिंग कुछ भी हो.
सूची में किसी एक ग्रेडिंग पीरियड को अपडेट करना
ग्रेडिंग की किसी मौजूदा अवधि से जुड़े कुछ डेटा में बदलाव करने के लिए, बदले गए डेटा के साथ सूची में ग्रेडिंग की मौजूदा अवधि का आईडी शामिल करें.
Python
इस उदाहरण में, ग्रेड देने की "ग्रीष्मकालीन" अवधि के खत्म होने की तारीख में बदलाव किया जाएगा. applyToExistingCoursework
फ़ील्ड को True
पर सेट कर दिया जाएगा. ध्यान दें कि इस बूलियन को True
पर सेट करने पर, मौजूदा कोर्सवर्क पर, ग्रेड देने के लिए कॉन्फ़िगर की गई सभी अवधियां लागू हो जाएंगी. पिछले एपीआई अनुरोध में, बोलियन को False
पर सेट किया गया था, ताकि मौजूदा कोर्सवर्क पर "समर" ग्रेडिंग अवधि लागू न की जाए. अब जब यह बूलियन फ़ील्ड True
पर सेट है, तो "समर" ग्रेडिंग पीरियड, मैच करने वाले सभी मौजूदा कोर्सवर्क पर लागू होगा.
def update_existing_grading_period(classroom, course_id):
"""
An existing grading period is updated.
"""
try:
# Use the `GetGradingPeriodSettings` endpoint to retrieve the existing
# grading period IDs. You will need to include these IDs in the request
# body to make sure existing grading periods aren't deleted.
body = {
"gradingPeriods": [
{
"id": "FIRST_SEMESTER_GRADING_PERIOD_ID",
"title": "First Semester",
"start_date": {
"day": 1,
"month": 9,
"year": 2023
},
"end_date": {
"day": 15,
"month": 12,
"year": 2023
}
},
{
"id": "SECOND_SEMESTER_GRADING_PERIOD_ID",
"title": "Second Semester",
"start_date": {
"day": 15,
"month": 1,
"year": 2024
},
"end_date": {
"day": 31,
"month": 5,
"year": 2024
}
},
{
# The end date for this grading period will be modified from August 31, 2024 to September 10, 2024.
# Include the grading period ID in the request along with the new data.
"id": "SUMMER_GRADING_PERIOD_ID",
"title": "Summer",
"start_date": {
"day": 1,
"month": 6,
"year": 2024
},
"end_date": {
"day": 10,
"month": 9,
"year": 2024
}
}
],
"applyToExistingCoursework": True
}
gradingPeriodSettings = classroom.courses().updateGradingPeriodSettings(
courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework',
previewVersion="V1_20240401_PREVIEW").execute()
return gradingPeriodSettings
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
किसी ग्रेडिंग पीरियड को मिटाना
ग्रेडिंग पीरियड मिटाने के लिए, उसे सूची से हटाएं. ध्यान दें कि अगर ग्रेडिंग पीरियड को मिटाया जाता है, तो CourseWork में ग्रेडिंग पीरियड का कोई भी रेफ़रंस भी मिट जाएगा. भले ही, applyToExistingCoursework
सेटिंग कुछ भी हो.
Python
इस गाइड में दिए गए उदाहरण को जारी रखने के लिए, ग्रेडिंग की अवधि "समर" को मिटाएं.
def delete_grading_period(classroom, course_id):
"""
An existing grading period is deleted.
"""
try:
body = {
"gradingPeriods": [
{
"id": "FIRST_SEMESTER_GRADING_PERIOD_ID",
"title": "First Semester",
"start_date": {
"day": 1,
"month": 9,
"year": 2023
},
"end_date": {
"day": 15,
"month": 12,
"year": 2023
}
},
{
"id": "SECOND_SEMESTER_GRADING_PERIOD_ID",
"title": "Second Semester",
"start_date": {
"day": 15,
"month": 1,
"year": 2024
},
"end_date": {
"day": 31,
"month": 5,
"year": 2024
}
}
]
}
gradingPeriodSettings = classroom.courses().updateGradingPeriodSettings(
courseId=course_id, body=body, updateMask='gradingPeriods',
previewVersion="V1_20240401_PREVIEW").execute()
return gradingPeriodSettings
except HttpError as error:
# Handle errors as appropriate for your application.
print(f"An error occurred: {error}")
return error
CourseWork पर gradingPeriodId
फ़ील्ड को मैनेज करना
CourseWork संसाधन में gradingPeriodId
फ़ील्ड शामिल होता है. CourseWork एंडपॉइंट का इस्तेमाल करके, CourseWork से जुड़ी ग्रेडिंग की अवधि को पढ़ा और लिखा जा सकता है. इस असोसिएशन को मैनेज करने के तीन तरीके हैं:
- तारीख के हिसाब से ग्रेडिंग पीरियड अपने-आप जुड़ना
- कस्टम ग्रेडिंग पीरियड
- ग्रेडिंग पीरियड से असाइनमेंट का कोई असोसिएशन नहीं है
1. तारीख के आधार पर ग्रेडिंग पीरियड असोसिएशन
कोर्सवर्क बनाते समय, Classroom को ग्रेड देने की अवधि से जुड़े असोसिएशन को मैनेज करने की अनुमति दी जा सकती है. ऐसा करने के लिए, CourseWork अनुरोध से gradingPeriodId
फ़ील्ड को हटाएं. इसके बाद, CourseWork के अनुरोध में dueDate
या scheduledTime
फ़ील्ड की जानकारी दें. अगर dueDate
, ग्रेड देने की किसी मौजूदा अवधि की तारीख की सीमा में आता है, तो Classroom, CourseWork पर ग्रेड देने की उस अवधि का आईडी सेट कर देगा. अगर dueDate
फ़ील्ड की जानकारी नहीं दी गई है, तो Classroom, scheduledTime
फ़ील्ड के आधार पर gradingPeriodId
तय करेगा. अगर कोई भी फ़ील्ड तय नहीं किया गया है या ग्रेडिंग की अवधि की तारीख की सीमा मैच नहीं होती है, तो CourseWork पर कोई gradingPeriodId
सेट नहीं किया जाएगा.
2. कस्टम ग्रेडिंग पीरियड
अगर आपको कोर्सवर्क को dueDate
या scheduledTime
से अलाइन होने वाली ग्रेडिंग अवधि के बजाय, किसी दूसरी ग्रेडिंग अवधि से जोड़ना है, तो कोर्सवर्क बनाते या अपडेट करते समय, gradingPeriodId
फ़ील्ड को मैन्युअल रूप से सेट किया जा सकता है. अगर gradingPeriodId
को मैन्युअल तरीके से सेट किया जाता है, तो Classroom, तारीख के आधार पर ग्रेडिंग पीरियड को अपने-आप असाइन नहीं करेगा.
3. ग्रेडिंग पीरियड से असाइनमेंट को असोसिएट नहीं किया गया है
अगर आपको CourseWork को किसी भी ग्रेडिंग अवधि से नहीं जोड़ना है, तो CourseWork के अनुरोध में gradingPeriodId
फ़ील्ड को खाली स्ट्रिंग (gradingPeriodId
: ""
) पर सेट करें.
अगर जमा करने की तारीख अपडेट की जाती है, तो ग्रेडिंग पीरियड का आईडी क्या होगा?
अगर CourseWork dueDate
फ़ील्ड को अपडेट किया जा रहा है और आपको कस्टम या ग्रेडिंग की अवधि के असोसिएशन को बनाए रखना है, तो आपको updateMask और अनुरोध के मुख्य हिस्से में dueDate
और gradingPeriodId
को शामिल करना चाहिए. इससे Classroom को यह निर्देश मिलेगा कि वह gradingPeriodId
को, नए dueDate
से मैच करने वाले ग्रेडिंग पीरियड से बदले नहीं.
Python
body = {
"dueDate": {
"month": 6,
"day": 10,
"year": 2024
},
"dueTime": {
"hours": 7
},
"gradingPeriodId": "<INSERT-GRADING-PERIOD-ID-OR-EMPTY-STRING>"
}
courseWork = classroom.courses().courseWork().patch(
courseId=course_id, id=coursework_id, body=body,
updateMask='dueDate,dueTime,gradingPeriodId', # include the gradingPeriodId field in the updateMask
previewVersion="V1_20240401_PREVIEW").execute()