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

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

खास जानकारी

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

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

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

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

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

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

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

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

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

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

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

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

ग्रेडिंग की किसी अवधि में अपडेट करने के लिए, रीड-बदलाव करें-लिखें पैटर्न का पालन करना ज़रूरी है. इसका मतलब है कि आपको:

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

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

ग्रेडिंग की अवधियों की सूची को अपडेट करने के बारे में ये नियम ध्यान में रखें:

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

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

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

अगर ग्रेडिंग की अवधि का टाइटल मिटाया जाता है या बदला जाता है, तो ये बदलाव सभी मौजूदा 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 फ़ील्ड को मैनेज करना

कोर्सWork संसाधन में एक 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. ग्रेडिंग पीरियड से असाइनमेंट को असोसिएट नहीं किया गया है

अगर आपको कोर्सWork को किसी भी ग्रेडिंग पीरियड से नहीं जोड़ना है, तो 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()