File tree Expand file tree Collapse file tree 2 files changed +11
-1
lines changed
Expand file tree Collapse file tree 2 files changed +11
-1
lines changed Original file line number Diff line number Diff line change 3333from credentials .apps .credentials .issuers import AbstractCredentialIssuer
3434
3535
36+ REVOCATION_STATES = {
37+ CredlyBadge : CredlyBadge .STATES .revoked ,
38+ AccredibleBadge : AccredibleBadge .STATES .expired ,
39+ }
40+
41+
3642class BadgeTemplateIssuer (AbstractCredentialIssuer ):
3743 """
3844 Issues BadgeTemplate credentials to users.
@@ -76,14 +82,17 @@ def issue_credential(
7682 UserCredential
7783 """
7884
79- user_credential , __ = self .issued_user_credential_type .objects .update_or_create (
85+ user_credential , __ = self .issued_user_credential_type .objects .get_or_create (
8086 username = username ,
8187 credential_content_type = ContentType .objects .get_for_model (credential ),
8288 credential_id = credential .id ,
8389 defaults = {
8490 "status" : status ,
8591 },
8692 )
93+ if not user_credential .state == REVOCATION_STATES .get (self .issued_user_credential_type ):
94+ user_credential .status = status
95+ user_credential .save ()
8796
8897 self .set_credential_attributes (user_credential , attributes )
8998 self .set_credential_date_override (user_credential , date_override )
Original file line number Diff line number Diff line change @@ -624,6 +624,7 @@ class CredlyBadge(UserCredential):
624624 STATES .pending ,
625625 STATES .accepted ,
626626 STATES .rejected ,
627+ STATES .revoked ,
627628 }
628629
629630 state = StatusField (
You can’t perform that action at this time.
0 commit comments