Classroom API का इस्तेमाल करके ग्रेडिंग पीरियड मैनेज करना

इस गाइड में Google Classroom API में, ग्रेडिंग पीरियड के एंडपॉइंट को इस्तेमाल करने का तरीका बताया गया है.

खास जानकारी

ग्रेडिंग पीरियड को होमवर्क, क्विज़, और प्रोजेक्ट को तारीख की तय सीमा के हिसाब से व्यवस्थित करने के लिए बनाया जाता है. Classroom API की मदद से डेवलपर, एडमिन और शिक्षकों की ओर से Classroom में ग्रेडिंग पीरियड बना सकते हैं, उनमें बदलाव कर सकते हैं, और उन्हें पढ़ सकते हैं. courseWork पर ग्रेडिंग पीरियड सेट करने के लिए, Classroom एपीआई का भी इस्तेमाल किया जा सकता है.

Classroom API, किसी कोर्स में ग्रेडिंग पीरियड की जानकारी को पढ़ने और उसमें बदलाव करने के लिए, दो एंडपॉइंट की सुविधा देता है:

  • GetGradingPeriodSettings: इससे आपको किसी कोर्स में ग्रेडिंग पीरियड की सेटिंग पढ़ने की सुविधा मिलती है.
  • UpdateGradingPeriodSettings: इससे आपको किसी कोर्स में ग्रेडिंग पीरियड की सेटिंग मैनेज करने की सुविधा मिलती है. इसमें ग्रेडिंग पीरियड को जोड़ा जा सकता है, उनमें बदलाव किया जा सकता है, और उन्हें मिटाया जा सकता है. साथ ही, कॉन्फ़िगर किए गए ग्रेडिंग पीरियड को सभी मौजूदा कोर्सWork पर लागू किया जा सकता है.

लाइसेंस देने की ज़रूरी शर्तें

कोर्स के लिए ग्रेडिंग पीरियड की सेटिंग में बदलाव करना

UpdateGradingPeriodSettings एंडपॉइंट का इस्तेमाल करके, किसी कोर्स में ग्रेडिंग पीरियड बनाने, उनमें बदलाव करने या उन्हें मिटाने के लिए, ये शर्तें पूरी होनी चाहिए:

  • अनुरोध करने वाले उपयोगकर्ता को Google Workspace for Education Plus का लाइसेंस असाइन किया गया है.
  • कोर्स के मालिक को Google Workspace for Education Plus का लाइसेंस असाइन किया गया है.

कोर्स में, ग्रेडिंग पीरियड की सेटिंग पढ़ना

डोमेन एडमिन और किसी कोर्स के शिक्षक, ग्रेडिंग पीरियड की सेटिंग को पढ़ सकते हैं. इससे कोई फ़र्क़ नहीं पड़ता कि उन्हें कौनसा लाइसेंस दिया गया है. इसका मतलब है कि GetGradingPeriodSettings एंडपॉइंट के अनुरोध, किसी भी डोमेन के एडमिन या शिक्षक की ओर से किए जा सकते हैं.

कोर्सवर्क पर ग्रेडिंग पीरियड का आईडी सेट करें

एपीआई का इस्तेमाल करके कोर्स बनाते या अपडेट करते समय, कोर्स के शिक्षकों को 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 के लाइसेंस के साथ, शिक्षक या एडमिन के क्रेडेंशियल का ऐक्सेस. courseWork बनाने या उसमें बदलाव करने के लिए, आपको शिक्षक के क्रेडेंशियल की ज़रूरत होगी. अगर एडमिन इस कोर्स के शिक्षक नहीं हैं, तो एडमिन, कोर्सवर्क को बना नहीं सकते या उसमें बदलाव नहीं कर सकते.

GradingPeriodSettings संसाधन को मैनेज करें

GradingPeriodSettings संसाधन में, अलग-अलग GradingPeriods की सूची और applyToExistingCoursework नाम का एक बूलियन फ़ील्ड शामिल होता है.

GradingPeriods सूची में, किसी कोर्स के सभी अलग-अलग ग्रेडिंग पीरियड दिखाए जाते हैं. आपको सूची में हर ग्रेडिंग पीरियड के लिए एक शीर्षक, शुरू होने की तारीख, और खत्म होने की तारीख बतानी होगी. कोर्स के हर ग्रेडिंग पीरियड का एक यूनीक टाइटल होना चाहिए. साथ ही, अलग-अलग ग्रेडिंग पीरियड के शुरू और खत्म होने की तारीख को ओवरलैप नहीं किया जा सकता. हर ग्रेडिंग पीरियड के लिए, Classroom API से असाइन किया गया आइडेंटिफ़ायर होगा.

applyToExistingCoursework बूलियन ऐसी सेटिंग है जो पहले से मौजूद है. इसकी मदद से, पहले बनाए गए courseWork को ग्रेडिंग पीरियड में व्यवस्थित किया जा सकता है. इसके लिए, आपको हर courseWork के लिए, gradingPeriodId में बदलाव करने के लिए अलग से एपीआई कॉल करने की ज़रूरत नहीं है. अगर इसे True पर सेट किया जाता है, तो Classroom सभी मौजूदा कोर्सWork पर 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 पर सेट किया गया है. इससे ऐसे सभी मौजूदा कोर्सWork पर 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

सूची में अलग-अलग ग्रेडिंग पीरियड जोड़ें

ग्रेडिंग पीरियड को अलग-अलग समय पर, पढ़ने-लिखने के पैटर्न के हिसाब से अपडेट करना होगा. इसका मतलब है कि आपको:

  1. GetGradingPeriodSettings एंडपॉइंट का इस्तेमाल करके, GradingPeriodSettings संसाधन में ग्रेडिंग पीरियड की सूची पढ़ें.
  2. ग्रेडिंग पीरियड की सूची में चुने हुए बदलाव करें.
  3. UpdateGradingPeriodSettings को अनुरोध में, ग्रेडिंग पीरियड की नई सूची भेजें.

इस पैटर्न से आपको यह पक्का करने में मदद मिलेगी कि कोर्स में हर ग्रेडिंग पीरियड के टाइटल अलग-अलग हों और ग्रेडिंग पीरियड के शुरू और खत्म होने की तारीख के बीच कोई ओवरलैप न हो.

ग्रेडिंग पीरियड की सूची को अपडेट करने से जुड़े इन नियमों का ध्यान रखें:

  1. किसी आईडी के बिना सूची में जोड़े गए ग्रेडिंग पीरियड को जोड़ माना जाता है.
  2. ग्रेडिंग पीरियड की सूची में मौजूद मौजूद नहीं है और इसे मिटाया गया माना जाता है.
  3. ऐसे ग्रेडिंग पीरियड को बदलाव माना जाता है जिनमें किसी मौजूदा आईडी का इस्तेमाल किया गया हो, लेकिन डेटा में बदलाव किया गया हो. बिना बदलाव की गई प्रॉपर्टी वैसी ही रहती हैं.
  4. नए या अज्ञात आईडी वाले ग्रेडिंग पीरियड को गड़बड़ी माना जाता है.

Python

इस गाइड में दिए गए उदाहरण के आधार पर, यह कोड बनाया जाएगा. ग्रेडिंग के लिए, एक नई समयावधि शुरू हो जाती है, जिसका टाइटल "गर्मियां" है. अनुरोध के मुख्य हिस्से में applyToExistingCoursework बूलियन को False पर सेट किया गया है.

ऐसा करने के लिए, मौजूदा GradingPeriodSettings को पढ़ा जाता है, सूची में एक नई ग्रेडिंग पीरियड, और applyToExistingCoursework बूलियन को False पर सेट किया जाता है. ध्यान दें कि मौजूदा courseWork पर पहले से लागू किसी भी ग्रेडिंग पीरियड को नहीं हटाया जाएगा. पिछले उदाहरण में, "सेमेस्टर 1" और "सेमेस्टर 2" ग्रेडिंग पीरियड, मौजूदा courseWork पर पहले ही लागू किए गए थे और अगर applyToExistingCoursework को बाद के अनुरोधों में 'गलत' पर सेट किया गया है, तो courseWork से नहीं हटाया जाएगा.

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 पर सेट किया गया था और उसमें बदलाव नहीं किया गया था, तो ग्रेडिंग पीरियड के बाद के अपडेट, मौजूदा कोर्सWork पर लागू होंगे.

ध्यान दें कि अगर UpdateGradingPeriodSettings के अनुरोध में इस बूलियन वैल्यू को True से False में बदला जाता है, तो सिर्फ़ GradingPeriodSettings में किए गए बदलाव मौजूदा कोर्सWork पर लागू नहीं होंगे. बूलियन को True पर सेट करने पर, पिछले एपीआई कॉल में courseWork पर लागू की गई, ग्रेडिंग पीरियड की किसी भी जानकारी को नहीं हटाया जाएगा. इस बूलियन सेटिंग को समझने का एक अच्छा तरीका यह है कि इससे मौजूदा courseWork को आपके कॉन्फ़िगर किए गए ग्रेडिंग पीरियड के साथ जोड़ने में मदद मिलती है. हालांकि, यह courseWork और कॉन्फ़िगर किए गए ग्रेडिंग पीरियड के बीच के मौजूदा जुड़ाव को हटाने में काम नहीं करती.

अगर ग्रेडिंग अवधि के टाइटल को मिटाया या बदला जाता है, तो ये बदलाव सभी मौजूदा courseWork के ज़रिए लागू होंगे, भले ही applyToExistingCoursework बूलियन सेटिंग कोई भी हो.

सूची में एक-एक करके ग्रेडिंग पीरियड को अपडेट करना

मौजूदा ग्रेडिंग पीरियड से जुड़े कुछ डेटा में बदलाव करने के लिए, सूची में बदले गए डेटा के साथ मौजूदा ग्रेडिंग पीरियड का आईडी शामिल करें.

Python

इस उदाहरण में, "गर्मियों" की ग्रेडिंग अवधि के खत्म होने की तारीख में बदलाव किया जाएगा. applyToExistingCoursework फ़ील्ड को True पर सेट किया जाएगा. ध्यान दें कि इस बूलियन को True पर सेट करने से, कॉन्फ़िगर की गई सभी ग्रेडिंग पीरियड मौजूदा कोर्सWork पर लागू हो जाएंगी. पिछले एपीआई अनुरोध में, बूलियन को False पर सेट किया गया था, ताकि "गर्मियों" की ग्रेडिंग पीरियड, मौजूदा कोर्सWork पर लागू न हो. अब इस बूलियन फ़ील्ड को True पर सेट कर दिया गया है, इसलिए "गर्मियों" की ग्रेडिंग पीरियड, उन सभी मौजूदा courseWork पर लागू होगी जो इससे मेल खाते हैं.

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 फ़ील्ड शामिल है. कोर्सवर्क से जुड़ी ग्रेडिंग पीरियड को पढ़ने और उसमें बदलाव करने के लिए, कोर्सWork एंडपॉइंट का इस्तेमाल किया जा सकता है. इस असोसिएशन को तीन तरीके से मैनेज किया जा सकता है:

  • तारीख के हिसाब से ग्रेडिंग पीरियड अपने-आप जुड़ने की सुविधा
  • ज़रूरत के हिसाब से ग्रेड देने की अवधि
  • ग्रेडिंग पीरियड असोसिएशन मौजूद नहीं है

1. तारीख के हिसाब से ग्रेडिंग पीरियड असोसिएशन

कोर्सवर्क बनाते समय, आप Classroom को अपने लिए ग्रेड देने की अवधि मैनेज करने की अनुमति दे सकते हैं. ऐसा करने के लिए, courseWork अनुरोध से gradingPeriodId फ़ील्ड को हटा दें. इसके बाद, courseWork अनुरोध में dueDate या scheduledTime फ़ील्ड की जानकारी दें. अगर dueDate मौजूदा ग्रेडिंग पीरियड की तारीख की सीमा में आता है, तो Classroom उस ग्रेडिंग पीरियड आईडी को courseWork पर सेट कर देगा. अगर dueDate फ़ील्ड के बारे में नहीं बताया गया है, तो Classroom, scheduledTime फ़ील्ड के आधार पर gradingPeriodId का पता लगाएगा. अगर कोई भी फ़ील्ड तय नहीं किया गया है या ग्रेडिंग पीरियड की तारीख की सीमा का कोई मिलान नहीं है, तो courseWork पर कोई gradingPeriodId सेट नहीं किया जाएगा.

2. पसंद के मुताबिक ग्रेड देने की अवधि

अगर आपको courseWork को dueDate या scheduledTime के साथ अलाइन होने वाले ग्रेडिंग पीरियड के बजाय कोई दूसरी ग्रेडिंग अवधि से जोड़ना है, तो courseWork बनाते या अपडेट करते समय, gradingPeriodId फ़ील्ड को मैन्युअल रूप से सेट किया जा सकता है. अगर gradingPeriodId को मैन्युअल तरीके से सेट किया जाता है, तो Classroom में, तारीख के हिसाब से ग्रेडिंग पीरियड अपने-आप जुड़ने की सुविधा काम नहीं करेगी.

3. ग्रेडिंग पीरियड कोई असोसिएशन नहीं है

अगर आपको कोर्सWork को किसी भी ग्रेडिंग पीरियड से नहीं जोड़ना है, तो courseWork अनुरोध में gradingPeriodId फ़ील्ड को खाली स्ट्रिंग (gradingPeriodId: "") पर सेट करें.

आखिरी तारीख अपडेट होने पर, ग्रेडिंग पीरियड के आईडी का क्या होगा?

अगर courseWork dueDate फ़ील्ड को अपडेट किया जा रहा है और आपको ग्रेडिंग पीरियड को अपने हिसाब से या बिना ग्रेडिंग पीरियड के असोसिएशन के तौर पर सेव रखना है, तो आपको updatedMask में 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()