Skip to content

Commit 888a7ff

Browse files
committed
fix: [trackers] fix remove object + improve url navigation
1 parent 460355e commit 888a7ff

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

bin/lib/ail_core.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,25 @@ def get_obj_queued():
115115
def get_objects_tracked():
116116
return AIL_OBJS_TRACKED # TODO add new test to check if == sorted() return True
117117

118+
def get_nb_objects_tracked():
119+
return len(AIL_OBJS_TRACKED)
120+
118121
def is_tracked_object(obj_type):
119122
return obj_type in AIL_OBJS_TRACKED
120123

124+
def is_tracked_objects(obj_types):
125+
for obj_type in obj_types:
126+
if not is_tracked_object(obj_type):
127+
return False
128+
return True
129+
130+
def sanitize_tracked_objects(objs):
131+
l_types = []
132+
for obj in objs:
133+
if is_tracked_object(obj):
134+
l_types.append(obj)
135+
return l_types
136+
121137
def get_objects_retro_hunted():
122138
return AIL_OBJS_RETRO_HUNTED
123139

var/www/blueprints/hunters.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,21 @@ def show_tracker():
172172
new_filter = request.form.get(f'{obj_type}_obj')
173173
if new_filter:
174174
filter_obj_types.append(obj_type)
175-
if sorted(filter_obj_types) == list(Tracker.get_objects_tracked()):
175+
filter_obj_types = ail_core.sanitize_tracked_objects(filter_obj_types)
176+
if len(filter_obj_types) == ail_core.get_nb_objects_tracked():
176177
filter_obj_types = []
177-
else:
178-
tracker_uuid = request.args.get('uuid', None)
179-
date_from = request.args.get('date_from')
180-
date_to = request.args.get('date_to')
178+
filter_obj_types = ','.join(filter_obj_types)
179+
if filter_obj_types:
180+
return redirect(url_for('hunters.show_tracker', uuid=tracker_uuid, date_from=date_from, date_to=date_to, filter=filter_obj_types))
181+
else:
182+
return redirect(url_for('hunters.show_tracker', uuid=tracker_uuid, date_from=date_from, date_to=date_to))
183+
184+
tracker_uuid = request.args.get('uuid', None)
185+
date_from = request.args.get('date_from')
186+
date_to = request.args.get('date_to')
187+
filter_obj_types = ail_core.sanitize_tracked_objects(request.args.get('filter', '').split(','))
188+
if len(filter_obj_types) == ail_core.get_nb_objects_tracked():
189+
filter_obj_types = []
181190

182191
res = Tracker.api_check_tracker_acl(tracker_uuid, user_org, user_id, user_role, 'view')
183192
if res: # invalid access

0 commit comments

Comments
 (0)