Source code for geonode.base.widgets

from typing import List

from dal_select2_taggit.widgets import TaggitSelect2
from django.http.request import QueryDict


[docs] class TaggitSelect2Custom(TaggitSelect2): """ Overriding Select2 tag widget for taggit's TagField. Fixes error in tests where 'value' is None. """
[docs] def value_from_datadict(self, data, files, name): """ Handle multi-word tag. Insure there's a comma when there's only a single multi-word tag, or tag "Multi word" would end up as "Multi" and "word". """ try: value = super().value_from_datadict(data, files, name) if value and "," not in value: value = f"{value}," return value except TypeError: return ""
[docs] class TaggitProfileSelect2Custom(TaggitSelect2): """ Overriding Select2 tag widget for ContactRoleField. """
[docs] def value_from_datadict(self, data, files, name) -> List[str]: """ Handle multi-profiles. Returns list of selected elements """ if type(data) is dict and name in data: return data[name] elif type(data) is QueryDict: return data.getlist(name) return []