From 139cae7c8772db2f764ff257f1b87123fe4fccb5 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 10 Jan 2024 18:35:12 +0100 Subject: [PATCH 1/3] excel or ods format for upload datas --- examples/membership-card.ods | Bin 0 -> 11886 bytes examples/membership-card.xls | Bin 0 -> 6144 bytes idhub/admin/forms.py | 3 ++- requirements.txt | 2 ++ 4 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 examples/membership-card.ods create mode 100644 examples/membership-card.xls diff --git a/examples/membership-card.ods b/examples/membership-card.ods new file mode 100644 index 0000000000000000000000000000000000000000..adf3cfc39e1983a28dd3b589a12319017e1092c6 GIT binary patch literal 11886 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 literal 0 HcmV?d00001 diff --git a/examples/membership-card.xls b/examples/membership-card.xls new file mode 100644 index 0000000000000000000000000000000000000000..857fb283e9381444eb17fa2b393c6ddf98697ba6 GIT binary patch literal 6144 zcmeHLU2IfU5T3i;UG73@x8+9#scVttr!Ar7K@33_3L-{e12v){(cA6aa%F#-?N-5P zTnfBNqT#_85<|iZ(I9G~51I&XK4>%=666VdBlxf=#*hH(_szYVUFt4uO`~FZ+Bs)t z&YUxI=FFLM?tcGW+ocm9FSsld%35iX+og~MtM~@+P?-*k_<)mlyHqNb*+8euedK{# zo~_(NKQ=J{;GWL_m;mx;dhLC*tZ7pl^uSKZ;x8`|*(@2fIXQscZoJG##8j(lWMp-| zXhi;AGSm7i9=MmU*kA2`=5OZlCP1z8&wS7GKMT+dmZG`l^zJ0*u`K#zL@<|XAz|9fEjWe+!pyrxnF9%PNNS( zF^Q}}!xzbQBc`?=)w)yb7Sx7(u467Lrx$VgHRMZgz2hB%fUyDj&k;*fGNBi8Q`Oty zZA5*6zn3D=QZ8pB+rkl@K@B~hyKDp=EIpPNQrH@(4=i!A*gM8!LRL{!VGQa76PT0HFl36 zvv%;2h76px(}Q+ybgwhgldy6_Z{v`5;_sYc0z?Lm8gf-$WU4Oi)O7`mOvyaU3TN!86$~)N%%(aq9C*@dqduW%F zN!XY=ZjacQZ_96K`*mD7W21JiH)ij*(jzH*B}U_laxz2CtIp7vmBRaVo4N)_+{z5w z7P?pU_Tay7Rp06oF0>ZeidlJ~CCqsMAYS1G#^U3x=Vr(79oexN&KrVLnNQl(kzu&& z=BaBxY#WTPe@XcTeLL$svV{8#Paj0jIsXbB(WUjc%FdO=jL2wzv~$3L+alZT*CIQ! zX)DvcJ)28gsm^F`Uv$GfS;0&3?qc!F!%oJEMB|54!C|eVFlM!uE9;k5;md#@>bWr9 zbD_9?c@=&FF%-fQ4gDLJZll{Mk1w}|JcqeWc~gCe)dl$=5T!Y;5US8VNSlYtm&y8pAqs7NaRh+>M*;X;ZBf*hn z-YtFBxDOc-mol)e6mTh@ZgQDw0>wv?+vf+xZFQ*tD4t1|3WDM%6e-TusvlD>MGXu# zm!bwfuw0577<4X04SaOD6g4nfU5Xm`5c@^qzL5T&Da` z(e(_7s^XKGI*!ZX8lLpE%V#tnH)^FU;(UgNlN%O3-!Rg^Fg1Dw=YbCsQd~uY#lY*Y z3Gy5oHkp=i-)k*T@y)o+N#wGl*x~_I!ymkBO4rg)f8ut$0ibu;Ps6$WF#uimEPz|S z8^FyT0&ts005tN-E%)tAybllq$lBey2a1zMiD~Ut#CMN(wO{SOsF6|CrD#3-sl#{v z+w;d)E({-g5B7K8IK2tHzy#hN@OY_kasoq)V`*zWKDwvNf5Zb*`Tei^Kj945S|-zI z!OIcP(mPST(LTIZeXh3gD>_&#wl$i6 zD5-lwP99%FS#au?WuAUs9gVJk31mO?rVPj?Xh^6Hw*CS&IeXUpjrH?7%zOH$qM5A! LtABs_xAp%C$V*a0 literal 0 HcmV?d00001 diff --git a/idhub/admin/forms.py b/idhub/admin/forms.py index 2649f4b..e67789e 100644 --- a/idhub/admin/forms.py +++ b/idhub/admin/forms.py @@ -79,7 +79,8 @@ class ImportForm(forms.Form): if File_datas.objects.filter(file_name=self.file_name, success=True).exists(): raise ValidationError("This file already exists!") - df = pd.read_csv (data, delimiter="\t", quotechar='"', quoting=csv.QUOTE_ALL) + # df = pd.read_csv (data, delimiter="\t", quotechar='"', quoting=csv.QUOTE_ALL) + df = pd.read_excel(data) data_pd = df.fillna('').to_dict() if not data_pd: diff --git a/requirements.txt b/requirements.txt index 9b19238..81df537 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,8 @@ black==23.9.1 python-decouple==3.8 jsonschema==4.19.1 pandas==2.1.1 +xlrd==2.0.1 +odfpy==1.4.1 requests==2.31.0 didkit==0.3.2 jinja2==3.1.2 From 1c37368d1f3cea9cca15a4afdb40662ae67951a0 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 10 Jan 2024 19:11:22 +0100 Subject: [PATCH 2/3] fix url in id of credential --- idhub/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/idhub/models.py b/idhub/models.py index 7d1ef6c..b81f32c 100644 --- a/idhub/models.py +++ b/idhub/models.py @@ -527,8 +527,12 @@ class VerificableCredential(models.Model): format = "%Y-%m-%dT%H:%M:%SZ" issuance_date = self.issued_on.strftime(format) + url_id = "{}/credentials/{}".format( + settings.DOMAIN.strip("/"), + self.id + ) context = { - 'vc_id': self.id, + 'vc_id': url_id, 'issuer_did': self.issuer_did.did, 'subject_did': self.subject_did and self.subject_did.did or '', 'issuance_date': issuance_date, From d018c46bf4b31b9f346f789c32867fb01c14825b Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Fri, 12 Jan 2024 17:22:28 +0100 Subject: [PATCH 3/3] fix problems with login --- idhub/templates/auth/login.html | 2 -- idhub/views.py | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/idhub/templates/auth/login.html b/idhub/templates/auth/login.html index 28c199e..8ae5822 100644 --- a/idhub/templates/auth/login.html +++ b/idhub/templates/auth/login.html @@ -4,8 +4,6 @@ {% block login_content %}
{% csrf_token %} - -
diff --git a/idhub/views.py b/idhub/views.py index 53db736..5f6fb71 100644 --- a/idhub/views.py +++ b/idhub/views.py @@ -13,16 +13,16 @@ class LoginView(auth_views.LoginView): } def get(self, request, *args, **kwargs): - if request.GET.get('next'): - self.extra_context['success_url'] = request.GET.get('next') + self.extra_context['success_url'] = request.GET.get( + 'next', + reverse_lazy('idhub:user_dashboard') + ) return super().get(request, *args, **kwargs) def form_valid(self, form): user = form.get_user() if not user.is_anonymous and user.is_admin: - user_dashboard = reverse_lazy('idhub:user_dashboard') admin_dashboard = reverse_lazy('idhub:admin_dashboard') - if self.extra_context['success_url'] == user_dashboard: - self.extra_context['success_url'] = admin_dashboard + self.extra_context['success_url'] = admin_dashboard auth_login(self.request, user) return HttpResponseRedirect(self.extra_context['success_url'])