Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions evap/contributor/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
)
from evap.evaluation.tools import (
AttachmentResponse,
get_bool_parameter_from_url_or_session,
get_object_from_dict_pk_entry_or_logged_40x,
get_parameter_from_url_or_session,
sort_formset,
)
from evap.results.exporters import ResultsExporter
Expand All @@ -35,7 +35,7 @@
@responsible_or_contributor_or_delegate_required
def index(request):
user = request.user
show_delegated = get_parameter_from_url_or_session(request, "show_delegated", True)
show_delegated = get_bool_parameter_from_url_or_session(request, "show_delegated", True)

represented_proxy_users = user.represented_users.filter(is_proxy_user=True)
contributor_visible_states = [
Expand Down
6 changes: 4 additions & 2 deletions evap/evaluation/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def vote_end_datetime(vote_end_date: datetime.date) -> datetime.datetime:
return date_to_datetime(vote_end_date) + datetime.timedelta(hours=24 + settings.EVALUATION_END_OFFSET_HOURS)


def get_parameter_from_url_or_session(request: HttpRequest, parameter: str, default=False) -> bool:
def get_bool_parameter_from_url_or_session(request: HttpRequest, parameter: str, default=False) -> bool:
result_str = request.GET.get(parameter, None)
if result_str is None: # if no parameter is given take session value
result = request.session.get(parameter, default)
Expand All @@ -180,7 +180,9 @@ def get_parameter_from_url_or_session(request: HttpRequest, parameter: str, defa
return result
Comment on lines 173 to 180
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming was one thing, thinking about whether we can reuse one of these functions instead of implementing the logic twice was the other consideration. Semantically, retrieving the parameter as a non-string value could be thought of as retrieving it as a string value and then converting the value to the target type.

What do you think of this?

def get_bool_parameter_from_url_or_session(request: HttpRequest, parameter: str, default: bool = False) -> bool:
    return {"true": True, "false": False}.get(
        get_string_parameter_from_url_or_session(request, parameter, "").lower(),
        default
    )



def get_string_from_url_or_session(request: HttpRequest, parameter: str, default: str | None = None) -> str | None:
def get_string_parameter_from_url_or_session(
request: HttpRequest, parameter: str, default: str | None = None
) -> str | None:
result = request.GET.get(parameter, None)
if result is None:
result = request.session.get(parameter, default)
Expand Down
8 changes: 4 additions & 4 deletions evap/staff/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@
HttpResponseNoContent,
SaveValidFormMixin,
StrOrPromise,
get_bool_parameter_from_url_or_session,
get_object_from_dict_pk_entry_or_logged_40x,
get_parameter_from_url_or_session,
get_string_from_url_or_session,
get_string_parameter_from_url_or_session,
sort_formset,
temporary_receiver,
)
Expand Down Expand Up @@ -1825,7 +1825,7 @@ def evaluation_preview(request, evaluation_id):
@manager_required
def questionnaire_index(request):
filters = ["all", "visible", "archived"]
filter_questionnaires = get_string_from_url_or_session(request, "filter_questionnaires", filters[0])
filter_questionnaires = get_string_parameter_from_url_or_session(request, "filter_questionnaires", filters[0])
if filter_questionnaires not in filters:
raise SuspiciousOperation

Expand Down Expand Up @@ -2323,7 +2323,7 @@ def user_index(request):

@manager_required
def user_list(request):
filter_users = get_parameter_from_url_or_session(request, "filter_users")
filter_users = get_bool_parameter_from_url_or_session(request, "filter_users")

users = UserProfile.objects.all()
if filter_users:
Expand Down