1212
1313from .models import TerminalCommand
1414
15+ User = get_user_model ()
16+ username_field = User .USERNAME_FIELD
17+
1518
1619class TerminalView (LoginRequiredMixin , UserPassesTestMixin , TemplateView ):
1720
@@ -45,9 +48,10 @@ def get_context_data(self, **kwargs):
4548 if favorite :
4649 commands = commands .filter (favorite = bool (favorite ))
4750
48- username = self .request .GET .get ("username" , None )
49- if username and username != "All" :
50- commands = commands .filter (created_by__username = username )
51+ current_username = self .request .GET .get ("username" , None )
52+ if current_username and current_username != "All" :
53+ filter_kwargs = {f"created_by__{ username_field } " : current_username }
54+ commands = commands .filter (** filter_kwargs )
5155
5256 search = self .request .GET .get ("search" , None )
5357 if search :
@@ -56,18 +60,14 @@ def get_context_data(self, **kwargs):
5660 commands = commands [:20 ]
5761 context ["commands" ] = commands
5862
59- usernames = (
60- get_user_model ()
61- .objects .filter (
62- id__in = TerminalCommand .objects .values_list ("created_by_id" ).distinct ()
63- )
64- .values_list ("username" , flat = True )
65- )
66- if self .request .user .username in usernames :
67- usernames = [self .request .user .username ] + [
68- username
69- for username in usernames
70- if username != self .request .user .username
63+ usernames = User .objects .filter (
64+ id__in = TerminalCommand .objects .values_list (
65+ "created_by_id" , flat = True
66+ ).distinct ()
67+ ).values_list (username_field , flat = True )
68+ if current_username in usernames :
69+ usernames = [current_username ] + [
70+ uname for uname in usernames if uname != current_username
7171 ]
7272 context ["usernames" ] = usernames
7373
@@ -81,6 +81,7 @@ def get_context_data(self, **kwargs):
8181 )
8282 for log in log_entries :
8383 log .user = user_model .objects .get (id = log .user_id )
84+ log .user .username_value = getattr (log .user , username_field )
8485
8586 tc = TerminalCommand .objects .filter (id = log .object_id ).first ()
8687 if tc :
0 commit comments