File tree 2 files changed +11
-1
lines changed
2 files changed +11
-1
lines changed Original file line number Diff line number Diff line change 33
33
from credentials .apps .credentials .issuers import AbstractCredentialIssuer
34
34
35
35
36
+ REVOCATION_STATES = {
37
+ CredlyBadge : CredlyBadge .STATES .revoked ,
38
+ AccredibleBadge : AccredibleBadge .STATES .expired ,
39
+ }
40
+
41
+
36
42
class BadgeTemplateIssuer (AbstractCredentialIssuer ):
37
43
"""
38
44
Issues BadgeTemplate credentials to users.
@@ -76,14 +82,17 @@ def issue_credential(
76
82
UserCredential
77
83
"""
78
84
79
- user_credential , __ = self .issued_user_credential_type .objects .update_or_create (
85
+ user_credential , __ = self .issued_user_credential_type .objects .get_or_create (
80
86
username = username ,
81
87
credential_content_type = ContentType .objects .get_for_model (credential ),
82
88
credential_id = credential .id ,
83
89
defaults = {
84
90
"status" : status ,
85
91
},
86
92
)
93
+ if not user_credential .state == REVOCATION_STATES .get (self .issued_user_credential_type ):
94
+ user_credential .status = status
95
+ user_credential .save ()
87
96
88
97
self .set_credential_attributes (user_credential , attributes )
89
98
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):
624
624
STATES .pending ,
625
625
STATES .accepted ,
626
626
STATES .rejected ,
627
+ STATES .revoked ,
627
628
}
628
629
629
630
state = StatusField (
You can’t perform that action at this time.
0 commit comments