simplify flow from promotion web

This commit is contained in:
Cayo Puigdefabregas 2023-12-13 17:52:18 +01:00
parent 8abb43f95d
commit cb1b7de4f6
3 changed files with 18 additions and 1 deletions

View File

@ -144,6 +144,9 @@ class CredentialsRequestView(MyWallet, FormView):
messages.success(self.request, _("The credential was issued successfully!")) messages.success(self.request, _("The credential was issued successfully!"))
Event.set_EV_CREDENTIAL_ISSUED_FOR_USER(cred) Event.set_EV_CREDENTIAL_ISSUED_FOR_USER(cred)
Event.set_EV_CREDENTIAL_ISSUED(cred) Event.set_EV_CREDENTIAL_ISSUED(cred)
url = self.request.session.pop('next_url', None)
if url:
return redirect(url)
else: else:
messages.error(self.request, _("The credential does not exist!")) messages.error(self.request, _("The credential does not exist!"))
return super().form_valid(form) return super().form_valid(form)

View File

@ -23,8 +23,10 @@ class AuthorizeForm(forms.Form):
reg = r'({})'.format('|'.join(self.presentation_definition)) reg = r'({})'.format('|'.join(self.presentation_definition))
self.credentials = self.user.vcredentials.filter( self.all_credentials = self.user.vcredentials.filter(
schema__type__iregex=reg, schema__type__iregex=reg,
)
self.credentials = self.all_credentials.filter(
status=VerificableCredential.Status.ISSUED.value status=VerificableCredential.Status.ISSUED.value
) )
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)

View File

@ -27,6 +27,12 @@ class AuthorizeView(UserView, FormView):
form_class = AuthorizeForm form_class = AuthorizeForm
success_url = reverse_lazy('idhub:user_demand_authorization') success_url = reverse_lazy('idhub:user_demand_authorization')
def get(self, request, *args, **kwargs):
response = super().get(request, *args, **kwargs)
if self.request.session.get('next_url'):
return redirect(reverse_lazy('idhub:user_credentials_request'))
return response
def get_form_kwargs(self): def get_form_kwargs(self):
kwargs = super().get_form_kwargs() kwargs = super().get_form_kwargs()
kwargs['user'] = self.request.user kwargs['user'] = self.request.user
@ -39,6 +45,12 @@ class AuthorizeView(UserView, FormView):
kwargs["code"] = self.request.GET.get('code') kwargs["code"] = self.request.GET.get('code')
return kwargs return kwargs
def get_form(self, form_class=None):
form = super().get_form(form_class=form_class)
if form.all_credentials.exists() and not form.credentials.exists():
self.request.session['next_url'] = self.request.get_full_path()
return form
def form_valid(self, form): def form_valid(self, form):
authorization = form.save() authorization = form.save()
if not authorization or authorization.status_code != 200: if not authorization or authorization.status_code != 200: