create a pre-credential
This commit is contained in:
parent
2df87faf80
commit
dc887c98c2
|
@ -114,12 +114,12 @@ class ImportForm(forms.Form):
|
|||
return user.first()
|
||||
|
||||
def create_credential(self, user, row):
|
||||
d = self.json_schema.copy()
|
||||
d['instance'] = row
|
||||
return VerificableCredential(
|
||||
verified=False,
|
||||
user=user,
|
||||
data=json.dumps(d)
|
||||
csv_data=json.dumps(row),
|
||||
did_issuer=self._did.did,
|
||||
schema=self._schema,
|
||||
)
|
||||
|
||||
def exception(self, msg):
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 4.2.5 on 2023-11-14 17:08
|
||||
# Generated by Django 4.2.5 on 2023-11-14 17:48
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
@ -144,6 +144,7 @@ class Migration(migrations.Migration):
|
|||
('did_issuer', models.CharField(max_length=250)),
|
||||
('did_subject', models.CharField(max_length=250)),
|
||||
('data', models.TextField()),
|
||||
('csv_data', models.TextField()),
|
||||
(
|
||||
'status',
|
||||
models.PositiveSmallIntegerField(
|
||||
|
@ -156,6 +157,14 @@ class Migration(migrations.Migration):
|
|||
default=1,
|
||||
),
|
||||
),
|
||||
(
|
||||
'schema',
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name='vcredentials',
|
||||
to='idhub.schemas',
|
||||
),
|
||||
),
|
||||
(
|
||||
'user',
|
||||
models.ForeignKey(
|
||||
|
|
|
@ -462,6 +462,7 @@ class VerificableCredential(models.Model):
|
|||
did_issuer = models.CharField(max_length=250)
|
||||
did_subject = models.CharField(max_length=250)
|
||||
data = models.TextField()
|
||||
csv_data = models.TextField()
|
||||
status = models.PositiveSmallIntegerField(
|
||||
choices=Status.choices,
|
||||
default=Status.ENABLED
|
||||
|
@ -471,6 +472,11 @@ class VerificableCredential(models.Model):
|
|||
on_delete=models.CASCADE,
|
||||
related_name='vcredentials',
|
||||
)
|
||||
schema = models.ForeignKey(
|
||||
Schemas,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='vcredentials',
|
||||
)
|
||||
|
||||
@property
|
||||
def get_schema(self):
|
||||
|
@ -488,7 +494,7 @@ class VerificableCredential(models.Model):
|
|||
return self.Status(self.status).label
|
||||
|
||||
def get_datas(self):
|
||||
data = json.loads(self.data).get('instance').items()
|
||||
data = json.loads(self.csv_data).items()
|
||||
return data
|
||||
|
||||
def issue(self, did):
|
||||
|
@ -497,8 +503,11 @@ class VerificableCredential(models.Model):
|
|||
self.issued_on = datetime.datetime.now()
|
||||
|
||||
def get_issued_on(self):
|
||||
if self.issued_on:
|
||||
return self.issued_on.strftime("%m/%d/%Y")
|
||||
|
||||
return ''
|
||||
|
||||
class VCTemplate(models.Model):
|
||||
wkit_template_id = models.CharField(max_length=250)
|
||||
data = models.TextField()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 4.2.5 on 2023-11-14 17:08
|
||||
# Generated by Django 4.2.5 on 2023-11-14 17:48
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"$id": "https://pangea.org/schemas/member-credential-schema.json",
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MemberCredential",
|
||||
"description": "MemberCredential using JsonSchemaCredential",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"format": "email"
|
||||
},
|
||||
"membershipType": {
|
||||
"type": "string",
|
||||
"enum": ["individual", "organization"]
|
||||
}
|
||||
},
|
||||
"required": ["name", "email", "membershipType"]
|
||||
}
|
|
@ -1,21 +1,4 @@
|
|||
{
|
||||
"@context": [
|
||||
"https://www.w3.org/ns/credentials/v2",
|
||||
"https://www.w3.org/ns/credentials/examples/v2"
|
||||
],
|
||||
"id": "https://example.com/credentials/3734",
|
||||
"type": ["VerifiableCredential", "JsonSchemaCredential"],
|
||||
"issuer": "https://pangea.org/issuers/10",
|
||||
"issuanceDate": "2023-09-01T19:23:24Z",
|
||||
"credentialSchema": {
|
||||
"id": "https://www.w3.org/2022/credentials/v2/json-schema-credential-schema.json",
|
||||
"type": "JsonSchema",
|
||||
"digestSRI": "sha384-S57yQDg1MTzF56Oi9DbSQ14u7jBy0RDdx0YbeV7shwhCS88G8SCXeFq82PafhCrW"
|
||||
},
|
||||
"credentialSubject": {
|
||||
"id": "https://pangea.org/schemas/member-credential-schema.json",
|
||||
"type": "JsonSchema",
|
||||
"jsonSchema": {
|
||||
"$id": "https://pangea.org/schemas/member-credential-schema.json",
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MemberCredential",
|
||||
|
@ -36,5 +19,3 @@
|
|||
},
|
||||
"required": ["name", "email", "membershipType"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue