@@ -48,7 +48,7 @@ def register_view(request):
4848 profile .user = user
4949 profile .save ()
5050
51- # Crear cuentas de Stripe para el usuario
51+
5252 customer_id , account_id = associate_stripe_accounts_to_user (user )
5353 if customer_id :
5454 messages .success (request , "Tu cuenta de pagos ha sido configurada correctamente." )
@@ -73,58 +73,81 @@ def logout_view(request):
7373@login_required
7474def profile_view (request , username ):
7575 user , user_profile = get_user_and_profile (request , username )
76- #Necesario en caso de buscar el perfil de otro usuario (no necesariamente el mismo que esta logueado)
76+
7777 if not user :
7878 return redirect (RIDE_LIST_URL )
7979
80- # Primero obtenemos los datos de viajes
80+
81+ is_own_profile = request .user == user
82+ if not is_own_profile and not user_profile .profile_visible :
83+
84+ context = {
85+ USER_KEY : user ,
86+ USER_PROFILE_KEY : user_profile ,
87+ IS_OWN_PROFILE_KEY : False ,
88+ 'profile_not_visible' : True ,
89+ }
90+ return render (request , USER_PROFILE_TEMPLATE , context )
91+
92+
8193 rides_data = get_user_rides_data (user )
8294 profile_data = get_user_profile_data (user )
8395
84- # Extraemos las listas de viajes de rides_data
85- active_rides_as_driver = rides_data .get ('active_rides_as_driver' , [])
86- expired_rides_as_driver = rides_data .get ('expired_rides_as_driver' , [])
87- active_rides_as_passenger = rides_data .get ('active_rides_as_passenger' , [])
88- expired_rides_as_passenger = rides_data .get ('expired_rides_as_passenger' , [])
89-
90- # Ahora creamos los paginadores con las listas obtenidas
91- # Paginación para viajes como conductor (activos)
92- paginator_driver_active = Paginator (active_rides_as_driver , 6 )
93- driver_active_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'driver' and request .GET .get ('status' ) == 'active' else 1
94- active_driver_page_obj = paginator_driver_active .get_page (driver_active_page )
95-
96- # Paginación para viajes como conductor (finalizados)
97- paginator_driver_expired = Paginator (expired_rides_as_driver , 6 )
98- driver_expired_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'driver' and request .GET .get ('status' ) == 'expired' else 1
99- expired_driver_page_obj = paginator_driver_expired .get_page (driver_expired_page )
100-
101- # Paginación para viajes como pasajero (activos)
102- paginator_passenger_active = Paginator (active_rides_as_passenger , 6 )
103- passenger_active_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'passenger' and request .GET .get ('status' ) == 'active' else 1
104- active_passenger_page_obj = paginator_passenger_active .get_page (passenger_active_page )
105-
106- # Paginación para viajes como pasajero (finalizados)
107- paginator_passenger_expired = Paginator (expired_rides_as_passenger , 6 )
108- passenger_expired_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'passenger' and request .GET .get ('status' ) == 'expired' else 1
109- expired_passenger_page_obj = paginator_passenger_expired .get_page (passenger_expired_page )
110-
111- # También necesitamos modificar el contexto para mostrar las versiones paginadas
96+
97+ show_rides_history = is_own_profile or user_profile .show_rides_history
98+
99+
100+ if show_rides_history :
101+ active_rides_as_driver = rides_data .get ('active_rides_as_driver' , [])
102+ expired_rides_as_driver = rides_data .get ('expired_rides_as_driver' , [])
103+ active_rides_as_passenger = rides_data .get ('active_rides_as_passenger' , [])
104+ expired_rides_as_passenger = rides_data .get ('expired_rides_as_passenger' , [])
105+
106+
107+
108+ paginator_driver_active = Paginator (active_rides_as_driver , 6 )
109+ driver_active_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'driver' and request .GET .get ('status' ) == 'active' else 1
110+ active_driver_page_obj = paginator_driver_active .get_page (driver_active_page )
111+
112+
113+ paginator_driver_expired = Paginator (expired_rides_as_driver , 6 )
114+ driver_expired_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'driver' and request .GET .get ('status' ) == 'expired' else 1
115+ expired_driver_page_obj = paginator_driver_expired .get_page (driver_expired_page )
116+
117+
118+ paginator_passenger_active = Paginator (active_rides_as_passenger , 6 )
119+ passenger_active_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'passenger' and request .GET .get ('status' ) == 'active' else 1
120+ active_passenger_page_obj = paginator_passenger_active .get_page (passenger_active_page )
121+
122+
123+ paginator_passenger_expired = Paginator (expired_rides_as_passenger , 6 )
124+ passenger_expired_page = request .GET .get ('page' ) if request .GET .get ('tab' ) == 'passenger' and request .GET .get ('status' ) == 'expired' else 1
125+ expired_passenger_page_obj = paginator_passenger_expired .get_page (passenger_expired_page )
126+ else :
127+
128+ active_driver_page_obj = []
129+ expired_driver_page_obj = []
130+ active_passenger_page_obj = []
131+ expired_passenger_page_obj = []
132+
133+
112134 context = {
113135 USER_KEY : user ,
114136 USER_PROFILE_KEY : user_profile ,
115- IS_OWN_PROFILE_KEY : request .user == user ,
116- # Incluimos los datos originales para mantener la compatibilidad con código existente
137+ IS_OWN_PROFILE_KEY : is_own_profile ,
138+ 'show_rides_history' : show_rides_history ,
139+
117140 ** rides_data ,
118141 ** profile_data ,
119- # Añadimos los objetos de paginación
142+
120143 'active_driver_page_obj' : active_driver_page_obj ,
121144 'expired_driver_page_obj' : expired_driver_page_obj ,
122145 'active_passenger_page_obj' : active_passenger_page_obj ,
123146 'expired_passenger_page_obj' : expired_passenger_page_obj ,
124147 }
125148
126- # Seleccionamos la plantilla adecuada según si el usuario está viendo su propio perfil u otro
127- template = PROFILE_TEMPLATE if request . user == user else USER_PROFILE_TEMPLATE
149+
150+ template = PROFILE_TEMPLATE if is_own_profile else USER_PROFILE_TEMPLATE
128151
129152 return render (request , template , context )
130153
0 commit comments