From 855ad3912c61e5094cadd23958d0bf104744d4d9 Mon Sep 17 00:00:00 2001 From: aminhashemi92 Date: Sat, 13 Sep 2025 13:11:12 +0330 Subject: [PATCH] fix complete profile for new user --- accounts/forms.py | 37 +++++++++++++++++++++++++++++++++++++ accounts/views.py | 3 +++ db.sqlite3 | Bin 3149824 -> 3149824 bytes 3 files changed, 40 insertions(+) diff --git a/accounts/forms.py b/accounts/forms.py index 7654a13..76beb31 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -90,6 +90,19 @@ class CustomerForm(forms.ModelForm): return national_code def save(self, commit=True): + def _compute_completed(cleaned): + try: + first_ok = bool((cleaned.get('first_name') or '').strip()) + last_ok = bool((cleaned.get('last_name') or '').strip()) + nc_ok = bool((cleaned.get('national_code') or '').strip()) + phone_ok = bool((cleaned.get('phone_number_1') or '').strip() or (cleaned.get('phone_number_2') or '').strip()) + addr_ok = bool((cleaned.get('address') or '').strip()) + bank_ok = bool(cleaned.get('bank_name')) + card_ok = bool((cleaned.get('card_number') or '').strip()) + acc_ok = bool((cleaned.get('account_number') or '').strip()) + return all([first_ok, last_ok, nc_ok, phone_ok, addr_ok, bank_ok, card_ok, acc_ok]) + except Exception: + return False # Check if this is an update (instance exists) if self.instance and self.instance.pk: # Update existing profile @@ -108,6 +121,18 @@ class CustomerForm(forms.ModelForm): profile.affairs = current_user_profile.affairs profile.county = current_user_profile.county profile.broker = current_user_profile.broker + # Set completion flag based on provided form data + profile.is_completed = _compute_completed({ + 'first_name': user.first_name, + 'last_name': user.last_name, + 'national_code': self.cleaned_data.get('national_code'), + 'phone_number_1': self.cleaned_data.get('phone_number_1'), + 'phone_number_2': self.cleaned_data.get('phone_number_2'), + 'address': self.cleaned_data.get('address'), + 'bank_name': self.cleaned_data.get('bank_name'), + 'card_number': self.cleaned_data.get('card_number'), + 'account_number': self.cleaned_data.get('account_number'), + }) if commit: profile.save() @@ -142,6 +167,18 @@ class CustomerForm(forms.ModelForm): profile.affairs = current_user_profile.affairs profile.county = current_user_profile.county profile.broker = current_user_profile.broker + # Set completion flag based on provided form data + profile.is_completed = _compute_completed({ + 'first_name': user.first_name, + 'last_name': user.last_name, + 'national_code': self.cleaned_data.get('national_code'), + 'phone_number_1': self.cleaned_data.get('phone_number_1'), + 'phone_number_2': self.cleaned_data.get('phone_number_2'), + 'address': self.cleaned_data.get('address'), + 'bank_name': self.cleaned_data.get('bank_name'), + 'card_number': self.cleaned_data.get('card_number'), + 'account_number': self.cleaned_data.get('account_number'), + }) if commit: profile.save() diff --git a/accounts/views.py b/accounts/views.py index beb49ff..c5bec75 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -19,6 +19,9 @@ def login_view(request): renders login page and authenticating user POST requests to log user in """ + # If already authenticated, go straight to request list + if request.user.is_authenticated: + return redirect("processes:request_list") if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") diff --git a/db.sqlite3 b/db.sqlite3 index d80d44cb1bd70d4a407fc4c217ab6a9bc3f2c1a7..b3c2c854148917eb4018ad6bb49f6fd507365a4c 100644 GIT binary patch delta 7114 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 delta 3143 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 jCA-)