src.awards.models
Domain models for awards (OB3 AchievementCredential).
Currently a pragmatic, simple version of a full OpenbadgeCredential.
The full OpenBadgeCredential, with all possible fields, and nested objects, is described in https://www.imsglobal.org/spec/ob/v3p0/#org-1edtech-ob-v3p0-model-0 Starting at AchiementCredential, which is our Award.
1""" 2Domain models for awards (OB3 AchievementCredential). 3 4Currently a pragmatic, simple version of a full OpenbadgeCredential. 5 6The full OpenBadgeCredential, with all possible fields, and nested 7objects, is described in https://www.imsglobal.org/spec/ob/v3p0/#org-1edtech-ob-v3p0-model-0 8Starting at AchiementCredential, which is our Award. 9""" 10 11from dataclasses import dataclass 12 13 14@dataclass 15class Criteria: 16 """Criteria for earning an achievement.""" 17 18 narrative: str 19 20 21@dataclass 22class Achievement: 23 """An achievement within an award.""" 24 25 id: str 26 type: list[str] 27 criteria: Criteria 28 description: str 29 name: str 30 31 32@dataclass 33class AchievementSubject: 34 """The subject of an AchievementCredential.""" 35 36 id: str 37 type: list[str] 38 achievement: Achievement 39 40 41@dataclass 42class Issuer: 43 """The issuer of an AchievementCredential.""" 44 45 id: str 46 type: list[str] 47 name: str 48 49 50@dataclass 51class Award: 52 """Minimal OB3 AchievementCredential (unsigned).""" 53 54 id: str 55 type: list[str] 56 name: str 57 issuer: Issuer 58 validFrom: str 59 credentialSubject: AchievementSubject
@dataclass
class
Criteria:
Criteria for earning an achievement.
@dataclass
class
Achievement:
22@dataclass 23class Achievement: 24 """An achievement within an award.""" 25 26 id: str 27 type: list[str] 28 criteria: Criteria 29 description: str 30 name: str
An achievement within an award.
Achievement( id: str, type: list[str], criteria: Criteria, description: str, name: str)
criteria: Criteria
@dataclass
class
AchievementSubject:
33@dataclass 34class AchievementSubject: 35 """The subject of an AchievementCredential.""" 36 37 id: str 38 type: list[str] 39 achievement: Achievement
The subject of an AchievementCredential.
AchievementSubject(id: str, type: list[str], achievement: Achievement)
achievement: Achievement
@dataclass
class
Issuer:
42@dataclass 43class Issuer: 44 """The issuer of an AchievementCredential.""" 45 46 id: str 47 type: list[str] 48 name: str
The issuer of an AchievementCredential.
@dataclass
class
Award:
51@dataclass 52class Award: 53 """Minimal OB3 AchievementCredential (unsigned).""" 54 55 id: str 56 type: list[str] 57 name: str 58 issuer: Issuer 59 validFrom: str 60 credentialSubject: AchievementSubject
Minimal OB3 AchievementCredential (unsigned).
Award( id: str, type: list[str], name: str, issuer: Issuer, validFrom: str, credentialSubject: AchievementSubject)
issuer: Issuer
credentialSubject: AchievementSubject