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

इस गाइड में, 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 पर ग्रेडिंग पीरियड का आईडी सेट करना

किसी कोर्स के शिक्षक, एपीआई का इस्तेमाल करके CourseWork बनाते या अपडेट करते समय gradingPeriodId शामिल कर सकते हैं. भले ही, उन्हें कोई भी लाइसेंस असाइन किया गया हो.

ग्रेडिंग की अवधियां सेट अप करने के लिए, किसी उपयोगकर्ता की ज़रूरी शर्तें देखना

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

ज़रूरी शर्तें

इस गाइड में 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 API, userProfiles.checkUserCapability एंडपॉइंट उपलब्ध कराता है. इससे आपको यह पता लगाने में मदद मिलती है कि कोई उपयोगकर्ता, UpdateGradingPeriodSettings एंडपॉइंट से अनुरोध कर सकता है या नहीं.

Python
def check_grading_periods_update_capability(classroom_service, course_id):
    """Checks whether a user is able to create and modify grading periods in a course."""
    try:
        capability = classroom_service.userProfiles().checkUserCapability(
          userId="me",
          capability="UPDATE_GRADING_PERIOD_SETTINGS",
           # Required while the checkUserCapability method is available in the Developer Preview Program.
          previewVersion="V1_20240930_PREVIEW"
        ).execute()

        # Retrieve the `allowed` boolean from the response.
        if capability.get("allowed"):
          print("User is allowed to update grading period settings in the course.")
        else:
          print("User is not allowed to update grading period settings in the course.")
    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_service, 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_service.courses().updateGradingPeriodSettings(
          courseId=course_id,
          updateMask='gradingPeriods,applyToExistingCoursework',
          body=body
        ).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_service, course_id):
    """Read grading periods settings in a course."""
    try:
        gradingPeriodSettings = classroom_service.courses().getGradingPeriodSettings(
          courseId=course_id).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_service, 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_service.courses().updateGradingPeriodSettings(
          courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework').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_service, 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_service.courses().updateGradingPeriodSettings(
          courseId=course_id, body=body, updateMask='gradingPeriods,applyToExistingCoursework').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_service, 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_service.courses().updateGradingPeriodSettings(
          courseId=course_id, body=body, updateMask='gradingPeriods').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: "") पर सेट करें.

अगर Go प्रोग्रामिंग भाषा का इस्तेमाल किया जा रहा है और आपको ग्रेडिंग की अवधि सेट नहीं करनी है, तो आपको अनुरोध के मुख्य हिस्से में ForceSendFields फ़ील्ड भी शामिल करना चाहिए. Go क्लाइंट लाइब्रेरी में, सभी फ़ील्ड में omitempty फ़ील्ड टैग मौजूद होने की वजह से, एपीआई अनुरोधों से डिफ़ॉल्ट वैल्यू हटा दी जाती हैं. ForceSendFields फ़ील्ड इस प्रोसेस को बायपास करता है और खाली स्ट्रिंग भेजता है, ताकि यह पता चल सके कि आपको उस कोर्सवर्क के लिए ग्रेडिंग की कोई अवधि सेट नहीं करनी है. ज़्यादा जानकारी के लिए, Google APIs Go क्लाइंट लाइब्रेरी का दस्तावेज़ देखें.

शुरू करें
courseWork := &classroom.CourseWork{
  Title: "Homework questions",
  WorkType: "ASSIGNMENT",
  State: "DRAFT",
  // ...other CourseWork fields...
  GradingPeriodId: "",
  ForceSendFields: []string{"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_service.courses().courseWork().patch(
  courseId=course_id, id=coursework_id, body=body,
  updateMask='dueDate,dueTime,gradingPeriodId') # include the gradingPeriodId field in the updateMask
.execute()