diff --git a/idhub/admin/views.py b/idhub/admin/views.py index c4cac98..31a9994 100644 --- a/idhub/admin/views.py +++ b/idhub/admin/views.py @@ -907,19 +907,20 @@ class SchemasImportAddView(SchemasMix): def get(self, request, *args, **kwargs): self.check_valid_user() - file_name = kwargs['file_schema'] + self.file_name = kwargs['file_schema'] 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!") return redirect('idhub:admin_schemas_import') - schema = self.create_schema(file_name) + schema = self.create_schema() if schema: messages.success(self.request, _("The schema was added sucessfully")) return redirect('idhub:admin_schemas') - def create_schema(self, file_name): - data = self.open_file(file_name) + def create_schema(self): + data = self.open_file() try: ldata = json.loads(data) assert credtools.validate_schema(ldata) @@ -935,7 +936,7 @@ class SchemasImportAddView(SchemasMix): _description = json.dumps(ldata.get('description', '')) schema = Schemas.objects.create( - file_schema=file_name, + file_schema=self.file_name, data=data, type=title, _name=_name, @@ -946,9 +947,9 @@ class SchemasImportAddView(SchemasMix): schema.save() return schema - def open_file(self, file_name): + def open_file(self): data = '' - filename = Path(settings.SCHEMAS_DIR).joinpath(file_name) + filename = Path(settings.SCHEMAS_DIR).joinpath(self.file_name) with filename.open() as schema_file: data = schema_file.read() @@ -957,7 +958,7 @@ class SchemasImportAddView(SchemasMix): def get_template_description(self): context = {} template_name = 'credentials/{}'.format( - self.schema.file_schema + self.file_name ) tmpl = get_template(template_name) return tmpl.render(context) diff --git a/schemas/device-purchase.json b/schemas/device-purchase.json deleted file mode 100644 index 6267ae9..0000000 --- a/schemas/device-purchase.json +++ /dev/null @@ -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" - ] - } - } - } - ] -} \ No newline at end of file