fix schema loads
This commit is contained in:
parent
18d26de9ce
commit
426ddf9aaa
|
@ -907,19 +907,20 @@ class SchemasImportAddView(SchemasMix):
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
self.check_valid_user()
|
self.check_valid_user()
|
||||||
file_name = kwargs['file_schema']
|
self.file_name = kwargs['file_schema']
|
||||||
schemas_files = os.listdir(settings.SCHEMAS_DIR)
|
schemas_files = os.listdir(settings.SCHEMAS_DIR)
|
||||||
if file_name not in schemas_files:
|
if self.file_name not in schemas_files:
|
||||||
|
file_name = self.file_name
|
||||||
messages.error(self.request, f"The schema {file_name} not exist!")
|
messages.error(self.request, f"The schema {file_name} not exist!")
|
||||||
return redirect('idhub:admin_schemas_import')
|
return redirect('idhub:admin_schemas_import')
|
||||||
|
|
||||||
schema = self.create_schema(file_name)
|
schema = self.create_schema()
|
||||||
if schema:
|
if schema:
|
||||||
messages.success(self.request, _("The schema was added sucessfully"))
|
messages.success(self.request, _("The schema was added sucessfully"))
|
||||||
return redirect('idhub:admin_schemas')
|
return redirect('idhub:admin_schemas')
|
||||||
|
|
||||||
def create_schema(self, file_name):
|
def create_schema(self):
|
||||||
data = self.open_file(file_name)
|
data = self.open_file()
|
||||||
try:
|
try:
|
||||||
ldata = json.loads(data)
|
ldata = json.loads(data)
|
||||||
assert credtools.validate_schema(ldata)
|
assert credtools.validate_schema(ldata)
|
||||||
|
@ -935,7 +936,7 @@ class SchemasImportAddView(SchemasMix):
|
||||||
_description = json.dumps(ldata.get('description', ''))
|
_description = json.dumps(ldata.get('description', ''))
|
||||||
|
|
||||||
schema = Schemas.objects.create(
|
schema = Schemas.objects.create(
|
||||||
file_schema=file_name,
|
file_schema=self.file_name,
|
||||||
data=data,
|
data=data,
|
||||||
type=title,
|
type=title,
|
||||||
_name=_name,
|
_name=_name,
|
||||||
|
@ -946,9 +947,9 @@ class SchemasImportAddView(SchemasMix):
|
||||||
schema.save()
|
schema.save()
|
||||||
return schema
|
return schema
|
||||||
|
|
||||||
def open_file(self, file_name):
|
def open_file(self):
|
||||||
data = ''
|
data = ''
|
||||||
filename = Path(settings.SCHEMAS_DIR).joinpath(file_name)
|
filename = Path(settings.SCHEMAS_DIR).joinpath(self.file_name)
|
||||||
with filename.open() as schema_file:
|
with filename.open() as schema_file:
|
||||||
data = schema_file.read()
|
data = schema_file.read()
|
||||||
|
|
||||||
|
@ -957,7 +958,7 @@ class SchemasImportAddView(SchemasMix):
|
||||||
def get_template_description(self):
|
def get_template_description(self):
|
||||||
context = {}
|
context = {}
|
||||||
template_name = 'credentials/{}'.format(
|
template_name = 'credentials/{}'.format(
|
||||||
self.schema.file_schema
|
self.file_name
|
||||||
)
|
)
|
||||||
tmpl = get_template(template_name)
|
tmpl = get_template(template_name)
|
||||||
return tmpl.render(context)
|
return tmpl.render(context)
|
||||||
|
|
|
@ -1,176 +0,0 @@
|
||||||
{
|
|
||||||
"$id": "https://idhub.pangea.org/vc_schemas/devicePurchase.json",
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"title": "Purchase of an eReuse device",
|
|
||||||
"description": "A device purchase credential is a proof of purchase of a device from a seller by a buyer",
|
|
||||||
"name": [
|
|
||||||
{
|
|
||||||
"value": "Device purchase credential",
|
|
||||||
"lang": "en"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": "Credencial d'adquisició d'un dispositiu",
|
|
||||||
"lang": "ca_ES"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": "Credencial de adquisición de un dispositivo",
|
|
||||||
"lang": "es"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "https://idhub.pangea.org/vc_schemas/ebsi/attestation.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"credentialSubject": {
|
|
||||||
"description": "Defines additional properties on credentialSubject: the purchase act, to qualify as simplified invoice (ES)",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"description": "Defines a unique identifier (DID) of the credential subject: the purchase act/transaction",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"invoiceNumber": {
|
|
||||||
"description": "The invoice number of the purchase act/transaction",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"totalAmount": {
|
|
||||||
"description": "The total amount of the transaction in local currency units: Euro by default",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerId": {
|
|
||||||
"description": "Defines a unique identifier (DID) of the seller actor",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerBusinessName": {
|
|
||||||
"description": "Business name of the credential subject in the seller role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerName": {
|
|
||||||
"description": "Name of the credential subject in the seller role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerSurname": {
|
|
||||||
"description": "Surname of the credential subject in the seller role, if natural person",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerEmail": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "email"
|
|
||||||
},
|
|
||||||
"sellerPhoneNumber": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerIdentityDocType": {
|
|
||||||
"description": "Type of the Identity Document of the credential subject in the seller role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sellerIdentityNumber": {
|
|
||||||
"description": "Number of the Identity Document of the credential subject in the seller role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerId": {
|
|
||||||
"description": "Defines a unique identifier (DID) of the credential subject: the buyer actor",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerBusinessName": {
|
|
||||||
"description": "Business name of the credential subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerName": {
|
|
||||||
"description": "Name of the credential subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerSurname": {
|
|
||||||
"description": "Surname of the credential subject in the buyer role, if natural person",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerEmail": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "email"
|
|
||||||
},
|
|
||||||
"buyerPhoneNumber": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerIdentityDocType": {
|
|
||||||
"description": "Type of the Identity Document of the credential subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"buyerIdentityNumber": {
|
|
||||||
"description": "Number of the Identity Document of the credential subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"deliveryStreetAddress": {
|
|
||||||
"description": "Postal address of the credential Subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"deliveryPostCode": {
|
|
||||||
"description": "Postal code of the credential Subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"deliveryCity": {
|
|
||||||
"description": "City of the credential Subject in the buyer role",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"supplyDescription": {
|
|
||||||
"description": "Description of the product/device supplied, needed in a simplified invoice",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"taxRate": {
|
|
||||||
"description": "Description of Tax rate (VAT) and optionally also the expression VAT included, or special circumstances such as REBU, needed in a simplified invoice",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"deviceChassisId": {
|
|
||||||
"description": "Chassis identifier of the device",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"devicePreciseHardwareId": {
|
|
||||||
"description": "Chassis precise hardware configuration identifier of the device",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"depositId": {
|
|
||||||
"description": "Identifier of an economic deposit left on loan to be returned under conditions",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sponsorId": {
|
|
||||||
"description": "Identifier of the sponsor of this purchase that paid the economic cost of the purchase",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"sponsorName": {
|
|
||||||
"description": "Name of the sponsor of this purchase that paid the economic cost of the purchase",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"purchaseDate": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "date-time"
|
|
||||||
},
|
|
||||||
"invoiceDate": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "date-time"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"invoiceNumber",
|
|
||||||
"totalAmount",
|
|
||||||
"sellerId",
|
|
||||||
"sellerName",
|
|
||||||
"sellerBusinessName",
|
|
||||||
"sellerSurname",
|
|
||||||
"sellerEmail",
|
|
||||||
"sellerIdentityDocType",
|
|
||||||
"sellerIdentityNumber",
|
|
||||||
"buyerId",
|
|
||||||
"buyerEmail",
|
|
||||||
"supplyDescription",
|
|
||||||
"taxRate",
|
|
||||||
"deviceChassisId",
|
|
||||||
"purchaseDate"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
Loading…
Reference in New Issue