rubric
एक टेंप्लेट है. शिक्षक इसका इस्तेमाल, छात्र-छात्राओं को ग्रेड देते समय कर सकते हैं
सबमिशन. Classroom API, आपको
शिक्षक इन रूब्रिक को मैनेज करते हैं.
पहली इमेज. Classroom के असाइनमेंट पर मौजूद सैंपल रूब्रिक का व्यू.
इस गाइड में, Rubrics API के बुनियादी सिद्धांतों और सुविधाओं के बारे में जानकारी दी गई है. यहां जाएं: सामान्य नियमों और शर्तों के बारे में जानने के लिए, सहायता केंद्र के ये लेख रूब्रिक और रूब्रिक का हिस्सा और रूब्रिक ग्रेडिंग, Classroom के यूज़र इंटरफ़ेस (यूआई) में की जाती है.
ज़रूरी शर्तें
हम उम्मीद करते हैं कि आपके पास ये चीज़ें हैं:
- Python 3.8.6 या इससे नया वर्शन
- पीआईपी पैकेज मैनेजमेंट टूल
- Google Cloud प्रोजेक्ट.
- आपके पास Google Classroom वाला Google Workspace for Education खाता हो चालू है.
- टेस्ट क्लास के लिए, कम से कम एक छात्र-छात्रा खाता होना चाहिए. अगर आपके पास Classroom की क्लास, जिसका इस्तेमाल टेस्ट करने के लिए किया जा सकता है, यूज़र इंटरफ़ेस (यूआई) में एक बनाएं और टेस्ट के लिए कोई छात्र/छात्रा जोड़ें.
डेस्कटॉप ऐप्लिकेशन के लिए क्रेडेंशियल को अनुमति दें
असली उपयोगकर्ता के तौर पर अपनी पहचान की पुष्टि करने और अपने ऐप्लिकेशन में उपयोगकर्ता का डेटा ऐक्सेस करने के लिए, आपको ये शर्तें पूरी करनी होंगी एक या उससे ज़्यादा OAuth 2.0 क्लाइंट आईडी बनाएं. Client-ID का इस्तेमाल, के लिए एक ऐप्लिकेशन बनाया है. अगर आपका ऐप्लिकेशन एक से ज़्यादा प्लैटफ़ॉर्म पर चलता है, आपको हर प्लैटफ़ॉर्म के लिए एक अलग क्लाइंट आईडी बनाना होगा.
- Google Cloud के क्रेडेंशियल पेज पर जाएं. Google Cloud Console.
- क्रेडेंशियल बनाएं पर क्लिक करें > OAuth क्लाइंट आईडी.
- ऐप्लिकेशन का प्रकार पर क्लिक करें > डेस्कटॉप ऐप्लिकेशन.
- नाम फ़ील्ड में, क्रेडेंशियल के लिए कोई नाम लिखें. यह नाम सिर्फ़ जो Google Cloud Console में दिखती है. उदाहरण के लिए, "Rubrics Preview क्लाइंट".
- बनाएं पर क्लिक करें. आपको OAuth क्लाइंट की बनाई गई स्क्रीन दिखेगी. Client-ID और क्लाइंट सीक्रेट.
- JSON डाउनलोड करें पर क्लिक करें. इसके बाद, ठीक है पर क्लिक करें. नया क्रेडेंशियल OAuth 2.0 क्लाइंट आईडी के तहत दिखता है.
- डाउनलोड की गई JSON फ़ाइल को
credentials.json
के तौर पर सेव करें और फ़ाइल को यहां ले जाएं सीधे तौर पर काम कर रहा है. - क्रेडेंशियल बनाएं पर क्लिक करें > एपीआई पासकोड डालें और एपीआई पासकोड पर ध्यान दें.
ज़्यादा जानने के लिए, ऐक्सेस क्रेडेंशियल बनाना देखें.
OAuth के दायरे कॉन्फ़िगर करें
अपने प्रोजेक्ट के मौजूदा OAuth दायरों के आधार पर, आपको इन्हें कॉन्फ़िगर करना पड़ सकता है: अतिरिक्त दायरे शामिल करना.
- OAuth की सहमति वाली स्क्रीन पर जाएं.
- ऐप्लिकेशन में बदलाव करें पर क्लिक करें > दायरा स्क्रीन पर जाने के लिए, सेव करें और जारी रखें.
- स्कोप जोड़ें या हटाएं पर क्लिक करें.
- अगर आपके पास ये दायरे पहले से नहीं हैं, तो इन्हें जोड़ें:
https://www.googleapis.com/auth/classroom.coursework.students
https://www.googleapis.com/auth/classroom.courses
- इसके बाद, अपडेट करें पर क्लिक करें > सेव करें और जारी रखें > सेव करें और जारी रखें > डैशबोर्ड पर वापस जाएं.
इस बारे में जानने के लिए, OAuth की सहमति वाली स्क्रीन को कॉन्फ़िगर करना लेख पढ़ें वगैरह को कॉपी करने का विकल्प है.
classroom.coursework.students
स्कोप की मदद से, पढ़ने और लिखने का ऐक्सेस मिलता है
रूब्रिक (CourseWork
के ऐक्सेस के साथ) और classroom.courses
स्कोप
पढ़ने और लिखने की सुविधा देता है.
किसी दिए गए तरीके के लिए ज़रूरी स्कोप, रेफ़रंस दस्तावेज़ में दिए गए हैं
. courses.courseWork.rubrics.create
अनुमति के दायरे देखें
पर जाएं. Google के OAuth 2.0 स्कोप में, Classroom के सभी स्कोप देखे जा सकते हैं
APIs. यहां रूब्रिक्स के बारे में जानकारी नहीं दी गई है, क्योंकि एपीआई अब भी झलक में है.
सैंपल कॉन्फ़िगर करना
अपनी काम करने वाली डायरेक्ट्री में, Python के लिए Google क्लाइंट लाइब्रेरी इंस्टॉल करें:
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
main.py
नाम की एक फ़ाइल बनाएं, जो क्लाइंट लाइब्रेरी बनाती है और
उपयोगकर्ता को: YOUR_API_KEY
की जगह पर एपीआई पासकोड का इस्तेमाल करके:
import json
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
# If modifying these scopes, delete the file token.json.
SCOPES = ['https://www.googleapis.com/auth/classroom.courses',
'https://www.googleapis.com/auth/classroom.coursework.students']
def build_authenticated_service(api_key):
"""Builds the Classroom service."""
creds = None
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run.
with open('token.json', 'w') as token:
token.write(creds.to_json())
try:
# Build the Classroom service.
service = build(
serviceName="classroom",
version="v1",
credentials=creds,
discoveryServiceUrl=f"https://classroom.googleapis.com/$discovery/rest?labels=DEVELOPER_PREVIEW&key={api_key}")
return service
except HttpError as error:
print('An error occurred: %s' % error)
if __name__ == '__main__':
service = build_authenticated_service(YOUR_API_KEY)
python main.py
का इस्तेमाल करके स्क्रिप्ट चलाएं. आपको प्रवेश करने के लिए कहा जाएगा और
OAuth के दायरे के लिए सहमति दें.
एक असाइनमेंट बनाएं
रूब्रिक किसी असाइनमेंट या CourseWork
से जुड़ा होता है और यह सिर्फ़
उस CourseWork
के संदर्भ में अर्थपूर्ण है. रूब्रिक सिर्फ़ ऐसे बना सकते हैं:
वह Google Cloud प्रोजेक्ट जिसने पैरंट CourseWork
आइटम बनाया. इस मकसद के लिए
इस गाइड में, स्क्रिप्ट की मदद से नया CourseWork
असाइनमेंट बनाएं.
main.py
में यह जोड़ें:
def get_latest_course(service):
"""Retrieves the last created course."""
try:
response = service.courses().list(pageSize=1).execute()
courses = response.get("courses", [])
if not courses:
print("No courses found. Did you remember to create one in the UI?")
return
course = courses[0]
return course
except HttpError as error:
print(f"An error occurred: {error}")
return error
def create_coursework(service, course_id):
"""Creates and returns a sample coursework."""
try:
coursework = {
"title": "Romeo and Juliet analysis.",
"description": """Write a paper arguing that Romeo and Juliet were
time travelers from the future.""",
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
}
coursework = service.courses().courseWork().create(
courseId=course_id, body=coursework).execute()
return coursework
except HttpError as error:
print(f"An error occurred: {error}")
return error
अभी main.py
को अपडेट करें, ताकि आप टेस्ट क्लास के course_id
को वापस पा सकें
बनाया गया, नया सैंपल असाइनमेंट बनाया गया, और असाइनमेंट के
coursework_id
:
if __name__ == '__main__':
service = build_authenticated_service(YOUR_API_KEY)
course = get_latest_course(service)
course_id = course.get("id")
course_name = course.get("name")
print(f"'{course_name}' course ID: {course_id}")
coursework = create_coursework(service, course_id)
coursework_id = coursework.get("id")
print(f"Assignment created with ID {coursework_id}")
#TODO(developer): Save the printed course and coursework IDs.
course_id
और coursework_id
को सेव करें. सभी रूब्रिक CRUD के लिए इनकी ज़रूरत होती है
कार्रवाइयां.
अब आपके पास Classroom में CourseWork
का सैंपल होना चाहिए.
दूसरी इमेज. Classroom में असाइनमेंट का एक नमूना देखें.
रूब्रिक बनाना
अब आप रूब्रिक को मैनेज करने के लिए तैयार हैं.
Create
के ऐसे कॉल के साथ CourseWork
पर एक रूब्रिक बनाया जा सकता है, जिसमें
पूरा रूब्रिक ऑब्जेक्ट, जिसमें शर्तों और लेवल की आईडी प्रॉपर्टी को शामिल नहीं किया जाता
(ये डेटा, कॉन्टेंट बनाने के बाद जनरेट होते हैं).
main.py
में यह फ़ंक्शन जोड़ें:
def create_rubric(service, course_id, coursework_id):
"""Creates an example rubric on a coursework."""
try:
body = {
"criteria": [
{
"title": "Argument",
"description": "How well structured your argument is.",
"levels": [
{"title": "Convincing",
"description": "A compelling case is made.", "points": 30},
{"title": "Passable",
"description": "Missing some evidence.", "points": 20},
{"title": "Needs Work",
"description": "Not enough strong evidence..", "points": 0},
]
},
{
"title": "Spelling",
"description": "How well you spelled all the words.",
"levels": [
{"title": "Perfect",
"description": "No mistakes.", "points": 20},
{"title": "Great",
"description": "A mistake or two.", "points": 15},
{"title": "Needs Work",
"description": "Many mistakes.", "points": 5},
]
},
{
"title": "Grammar",
"description": "How grammatically correct your sentences are.",
"levels": [
{"title": "Perfect",
"description": "No mistakes.", "points": 20},
{"title": "Great",
"description": "A mistake or two.", "points": 15},
{"title": "Needs Work",
"description": "Many mistakes.", "points": 5},
]
},
]
}
rubric = service.courses().courseWork().rubrics().create(
courseId=course_id, courseWorkId=coursework_id, body=body,
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
print(f"Rubric created with ID {rubric.get('id')}")
return rubric
except HttpError as error:
print(f"An error occurred: {error}")
return error
इसके बाद, अपने Course
का इस्तेमाल करके main.py
को अपडेट करके, उदाहरण के लिए रूब्रिक बनाने के लिए चलाएं
और पहले के CourseWork
आईडी:
if __name__ == '__main__':
service = build_authenticated_service(YOUR_API_KEY)
rubric = create_rubric(service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
print(json.dumps(rubric, indent=4))
रूब्रिक के बारे में कुछ जानकारी:
- शर्तों और लेवल का क्रम, Classroom के यूज़र इंटरफ़ेस (यूआई) में दिखता है.
- स्कोर किए गए लेवल (
points
प्रॉपर्टी वाले लेवल), पॉइंट के हिसाब से क्रम में लगाए जाने चाहिए उन्हें बढ़ते या घटते क्रम में लगाया जा सकता है. इन्हें रैंडम क्रम में नहीं लगाया जा सकता. - शिक्षक, ज़रूरी शर्तों और स्कोर के लेवल को फिर से क्रम में लगा सकते हैं. हालांकि, उन्हें स्कोर के बिना लेवल). साथ ही, जो डेटा में उनका क्रम बदल देता है.
रूब्रिक के स्ट्रक्चर से जुड़ी और चेतावनियों के लिए, सीमाएं देखें.
यूज़र इंटरफ़ेस (यूआई) पर वापस जाने पर, आपको असाइनमेंट पर रूब्रिक दिखेगा.
तीसरी इमेज. Classroom के असाइनमेंट पर मौजूद सैंपल रूब्रिक का व्यू.
रूब्रिक पढ़ना
रूब्रिक को List
और Get
तरीकों की मदद से पढ़ा जा सकता है.
किसी असाइनमेंट में ज़्यादा से ज़्यादा एक रूब्रिक हो सकता है. इसलिए, List
आसान नहीं है, लेकिन अगर आपके पास पहले से रूब्रिक आईडी नहीं है, तो यह काम आ सकता है. अगर वहां
कोई रूब्रिक नहीं है, जो CourseWork
से जुड़ा हुआ है. List
का जवाब खाली है.
main.py
में यह फ़ंक्शन जोड़ें:
def get_rubric(service, course_id, coursework_id):
"""
Get the rubric on a coursework. There can only be at most one.
Returns null if there is no rubric.
"""
try:
response = service.courses().courseWork().rubrics().list(
courseId=course_id, courseWorkId=coursework_id,
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
rubrics = response.get("rubrics", [])
if not rubrics:
print("No rubric found for this assignment.")
return
rubric = rubrics[0]
return rubric
except HttpError as error:
print(f"An error occurred: {error}")
return error
आपने जो रूब्रिक जोड़ा है उसे फ़ेच करने के लिए, main.py
को अपडेट करें और चलाएं:
if __name__ == '__main__':
service = build_authenticated_service(YOUR_API_KEY)
rubric = get_rubric(service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
print(json.dumps(rubric, indent=4))
#TODO(developer): Save the printed rubric ID.
बाद के चरणों के लिए रूब्रिक में id
प्रॉपर्टी को नोट करें.
आपके पास रूब्रिक आईडी होने पर, Get
बेहतर तरीके से काम करता है. फ़ंक्शन में Get
का इस्तेमाल करना
यह ऐसा दिखेगा:
def get_rubric(service, course_id, coursework_id, rubric_id):
"""
Get the rubric on a coursework. There can only be at most one.
Returns a 404 if there is no rubric.
"""
try:
rubric = service.courses().courseWork().rubrics().get(
courseId=course_id,
courseWorkId=coursework_id,
id=rubric_id,
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
return rubric
except HttpError as error:
print(f"An error occurred: {error}")
return error
अगर कोई रूब्रिक नहीं है, तो लागू करने का यह तरीका 404 दिखाता है.
रूब्रिक अपडेट करना
रूब्रिक में अपडेट, Patch
कॉल की मदद से किए जाते हैं. जटिल स्ट्रक्चर की वजह से
रूब्रिक के तौर पर, इन्हें अपडेट करने के लिए, पढ़ने-लिखने के पैटर्न का इस्तेमाल किया जाना चाहिए, जहां
पूरी criteria
प्रॉपर्टी बदल दी गई है.
अपडेट करने के नियम यहां दिए गए हैं:
- बिना किसी आईडी के जोड़े गए मानदंड या लेवल पर विचार किया जाता है जोड़ना.
- पहले से मौजूद शर्तों या लेवल में मौजूद नहीं है, इस पर विचार किया जाएगा मिटाना.
- मौजूदा आईडी, लेकिन बदले गए डेटा वाले डेटा वाले मानदंड या लेवल पर विचार किया जाता है बदलाव. बिना बदलाव की गई प्रॉपर्टी वैसी ही रहती हैं.
- नए या अज्ञात आईडी के साथ दिए गए मानदंड या लेवल पर विचार किया जाता है गड़बड़ियां.
- नई शर्तों और लेवल के क्रम को, यूज़र इंटरफ़ेस (यूआई) का नया ऑर्डर माना जाता है (ऊपर बताई गई सीमाओं के साथ).
रूब्रिक को अपडेट करने के लिए फ़ंक्शन जोड़ें:
def update_rubric(service, course_id, coursework_id, rubric_id, body):
"""
Updates the rubric on a coursework.
"""
try:
rubric = service.courses().courseWork().rubrics().patch(
courseId=course_id,
courseWorkId=coursework_id,
id=rubric_id,
body=body,
updateMask='criteria',
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
return rubric
except HttpError as error:
print(f"An error occurred: {error}")
return error
इस उदाहरण में, criteria
फ़ील्ड में बदलाव करने के लिए,
updateMask
.
इसके बाद, ऊपर दिए गए हर अपडेट में बदलाव करने के लिए, main.py
में बदलाव करें
नियम:
if __name__ == '__main__':
service = build_authenticated_service(YOUR_API_KEY)
# Get the latest rubric.
rubric = get_rubric(service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
criteria = rubric.get("criteria")
"""
The "criteria" property should look like this:
[
{
"id": "NkEyMdMyMzM2Nxkw",
"title": "Argument",
"description": "How well structured your argument is.",
"levels": [
{
"id": "NkEyMdMyMzM2Nxkx",
"title": "Convincing",
"description": "A compelling case is made.",
"points": 30
},
{
"id": "NkEyMdMyMzM2Nxky",
"title": "Passable",
"description": "Missing some evidence.",
"points": 20
},
{
"id": "NkEyMdMyMzM2Nxkz",
"title": "Needs Work",
"description": "Not enough strong evidence..",
"points": 0
}
]
},
{
"id": "NkEyMdMyMzM2Nxk0",
"title": "Spelling",
"description": "How well you spelled all the words.",
"levels": [...]
},
{
"id": "NkEyMdMyMzM2Nxk4",
"title": "Grammar",
"description": "How grammatically correct your sentences are.",
"levels": [...]
}
]
"""
# Make edits. This example will make one of each type of change.
# Add a new level to the first criteria. Levels must remain sorted by
# points.
new_level = {
"title": "Profound",
"description": "Truly unique insight.",
"points": 50
}
criteria[0]["levels"].insert(0, new_level)
# Remove the last criteria.
del criteria[-1]
# Update the criteria titles with numeric prefixes.
for index, criterion in enumerate(criteria):
criterion["title"] = f"{index}: {criterion['title']}"
# Resort the levels from descending to ascending points.
for criterion in criteria:
criterion["levels"].sort(key=lambda level: level["points"])
# Update the rubric with a patch call.
new_rubric = update_rubric(
service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID, YOUR_RUBRIC_ID, rubric)
print(json.dumps(new_rubric, indent=4))
ये बदलाव, अब Classroom में शिक्षक को भी दिखने चाहिए.
चौथी इमेज. अपडेट किए गए रूब्रिक का व्यू.
रूब्रिक के लेवल पर सबमिट किए गए असाइनमेंट देखें
फ़िलहाल, एपीआई की मदद से, छात्र-छात्राओं के सबमिट किए गए कॉन्टेंट को रूब्रिक से ग्रेड नहीं दिया जा सकता, लेकिन आपको उन सबमिशन के लिए रूब्रिक ग्रेड पढ़ सकता है जिन्हें Classroom का यूज़र इंटरफ़ेस (यूआई) है.
Classroom के यूज़र इंटरफ़ेस (यूआई) में छात्र/छात्रा के तौर पर, असाइनमेंट का सैंपल दें. इसके बाद, शिक्षक के तौर पर, मैन्युअल तरीके से रूब्रिक का इस्तेमाल करके असाइनमेंट को ग्रेड दें.
पांचवी इमेज. ग्रेडिंग के दौरान, रूब्रिक के बारे में शिक्षकों की राय.
रूब्रिक की मदद से ग्रेड किए गए छात्र-छात्राओं के सबमिशन में दो नए असाइनमेंट हुए हैं
प्रॉपर्टी: draftRubricGrades
और assignedRubricGrades
, जो
ड्राफ़्ट के दौरान शिक्षक के चुने गए पॉइंट और लेवल और उन्हें ग्रेडिंग भी असाइन की गई
राज्य का नाम रखा गया है.
इसके अलावा, छात्र-छात्राओं के सबमिट किए गए रूब्रिक में, rubricId
शामिल होता है
फ़ील्ड में. यह नया रूब्रिक दिखाता है, जो
CourseWork
. यह वैल्यू तब बदल सकती है, जब शिक्षक किसी
रूब्रिक.
आप मौजूदा studentSubmissions.Get
और
ग्रेड दिए गए असाइनमेंट देखने के लिए, studentSubmissions.List
तरीके.
छात्र/छात्रा के असाइनमेंट की सूची बनाने के लिए, main.py
में यह फ़ंक्शन जोड़ें:
def get_latest_submission(service, course_id, coursework_id):
"""Retrieves the last submission for an assignment."""
try:
response = service.courses().courseWork().studentSubmissions().list(
courseId = course_id,
courseWorkId = coursework_id,
pageSize=1,
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
submissions = response.get("studentSubmissions", [])
if not submissions:
print(
"""No submissions found. Did you remember to turn in and grade
the assignment in the UI?""")
return
submission = submissions[0]
return submission
except HttpError as error:
print(f"An error occurred: {error}")
return error
इसके बाद, सबमिशन ग्रेड देखने के लिए main.py
को अपडेट करें और चलाएं.
if __name__ == '__main__':
service = build_authenticated_service(YOUR_API_KEY)
submission = get_latest_submission(
service, YOUR_COURSE_ID, YOUR_COURSEWORK_ID)
print(json.dumps(submission, indent=4))
draftRubricGrades
और assignedRubricGrades
में ये शामिल हैं:
- इससे जुड़े रूब्रिक शर्तों का
criterionId
. - वह
points
जिसे शिक्षक ने हर शर्त के लिए असाइन किया है. यह लेवल चुना गया, लेकिन शिक्षक इसे ओवरराइट भी कर सकते थे. - हर शर्त के लिए चुने गए लेवल का
levelId
. अगर शिक्षक ने कोई स्तर चुनें, लेकिन फिर भी मानदंड के लिए अंक असाइन करें, यह फ़ील्ड मौजूद नहीं है.
इन सूचियों में केवल उन मानदंडों की प्रविष्टियां होती हैं, जिनमें शिक्षक या तो
कोई लेवल चुना गया या पॉइंट सेट किए गए. उदाहरण के लिए, अगर कोई शिक्षक सिर्फ़
ग्रेडिंग के दौरान किसी एक शर्त का पालन करें, draftRubricGrades
और
assignedRubricGrades
में सिर्फ़ एक आइटम होगा. भले ही, रूब्रिक में कई
शर्तें.
रूब्रिक मिटाना
रूब्रिक को स्टैंडर्ड Delete
अनुरोध की मदद से मिटाया जा सकता है. यह कोड
पूरा होने के लिए एक उदाहरण फ़ंक्शन दिखाता है, लेकिन क्योंकि ग्रेडिंग पहले ही
शुरू किया, तो मौजूदा रूब्रिक को मिटाया नहीं जा सकता:
def delete_rubric(service, course_id, coursework_id, rubric_id):
"""Deletes the rubric on a coursework."""
try:
service.courses().courseWork().rubrics().delete(
courseId=course_id,
courseWorkId=coursework_id,
id=rubric_id,
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
except HttpError as error:
print(f"An error occurred: {error}")
return error
रूब्रिक एक्सपोर्ट और इंपोर्ट करना
रूब्रिक, Google पर मैन्युअल तरीके से एक्सपोर्ट किए जा सकते हैं शिक्षकों के फिर से इस्तेमाल के लिए स्प्रेडशीट.
कोड में रूब्रिक के हिसाब से शर्तें तय करने के अलावा, हर महीने रूब्रिक और
एक्सपोर्ट की गई इन शीट से रूब्रिक अपडेट करने के लिए,
criteria
के बजाय, रूब्रिक की बॉडी में sourceSpreadsheetId
इस्तेमाल करें:
def create_rubric_from_sheet(service, course_id, coursework_id, sheet_id):
"""Creates an example rubric on a coursework."""
try:
body = {
"sourceSpreadsheetId": sheet_id
}
rubric = service.courses().courseWork().rubrics().create(
courseId=course_id, courseWorkId=coursework_id, body=body,
# Specify the preview version. Rubrics CRUD capabilities are
# supported in V1_20231110_PREVIEW and later.
previewVersion="V1_20231110_PREVIEW"
).execute()
print(f"Rubric created with ID {rubric.get('id')}")
return rubric
except HttpError as error:
print(f"An error occurred: {error}")
return error
सुझाव/राय दें या शिकायत करें
अगर आपको कोई समस्या मिलती है या कोई सुझाव/राय देनी है या शिकायत करनी है, तो अपना सुझाव शेयर करें.