fix complete profile for new user
This commit is contained in:
		
							parent
							
								
									f95beb726f
								
							
						
					
					
						commit
						855ad3912c
					
				
					 3 changed files with 40 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								db.sqlite3
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db.sqlite3
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue