Example #1
0
 def request(self, data, values, append):
     request = self.factory.get("/", data=data)
     url = utils.get_url_with_modified_params(request,
                                              values,
                                              append=append)
     parts = six.moves.urllib.parse.urlparse(url)
     return six.moves.urllib.parse.parse_qs(parts.query)
Example #2
0
 def build_links(self, request):
     data = request.GET
     for col in self.columns.visible_columns():
         if self.sort_key and self.sort_field:
             field = self.sort_field
             code = field.get_value_for_name(col.name)
             value = data.get(self.sort_key, "")
             reverse = value.startswith("-")
             if reverse:
                 value = value[1:]
             is_active = code == value
             next_value = "-%s" % code if not reverse and is_active else code
             mods = {self.sort_key: next_value}
         else:
             is_active = False
             reverse = False
             mods = {}
         url = get_url_with_modified_params(request, mods) if mods else None
         link = Link(content=col.label,
                     url=url,
                     is_active=is_active,
                     reverse=reverse,
                     sortable=col.sortable,
                     column=col)
         yield link
Example #3
0
def field_links(request, field):
    url = request.get_full_path()
    form_field = field.field
    field_value = field.value()
    if hasattr(form_field, 'build_links'):
        for value in form_field.build_links(request, field):
            yield value
    else:
        for code, label in form_field.choices:
            is_active = is_selected_choice(field_value, code)
            link_url = utils.get_url_with_modified_params(url, {field.name: code})
            yield Link(link_url, label, is_active, value=code)
Example #4
0
def bound_field_link_builder(field, request):
    url = request.get_full_path()
    form_field = field.field
    field_value = field.value()
    if hasattr(form_field, 'build_links'):
        for value in form_field.build_links(request, field):
            yield value
    else:
        for code, label in form_field.choices:
            is_active = is_selected_choice(field_value, code)
            link_url = utils.get_url_with_modified_params(url, {field.name: code})
            yield Link(content=label, url=link_url, is_active=is_active, value=code)
Example #5
0
 def build_links(self, request, bound_field):
     value = bound_field.value()
     field_name = bound_field.name
     text_value = force_text(value) if value is not None else None
     for k, v in self.choices:
         content = force_text(v)
         key = force_text(k)
         is_active = text_value and text_value == key
         if is_active and self.toggle:
             next_value = key if text_value.startswith("-") else "-%s" % key
         else:
             next_value = key
         url = utils.get_url_with_modified_params(request, {field_name: next_value})
         yield ui.Link(url=url, content=content, is_active=is_active)
Example #6
0
 def build_links(self, request, bound_field):
     value = bound_field.value()
     field_name = bound_field.name
     text_value = force_text(value) if value is not None else None
     for k, v in self.choices:
         content = force_text(v)
         key = force_text(k)
         is_active = text_value and text_value == key
         if is_active and self.toggle:
             next_value = key if text_value.startswith("-") else "-%s" % key
         else:
             next_value = key
         url = utils.get_url_with_modified_params(request,
                                                  {field_name: next_value})
         yield ui.Link(url=url, content=content, is_active=is_active)
Example #7
0
 def build_links(self, request):
     data = request.GET
     sort_name = getattr(self, "sort_parameter_name", None)
     for col in self.columns.visible():
         if sort_name:
             field = self.sort_field
             code = field.get_value_for_name(col.name)
             value = data.get(sort_name, "")
             reverse = value.startswith("-")
             if reverse:
                 value = value[1:]
             is_active = code == value
             next_value = "-%s" % code if not reverse and is_active else code
             mods = {sort_name: next_value}
         else:
             is_active = False
             reverse = False
             mods = {}
         url = get_url_with_modified_params(request, mods)
         link = ui.Link(content=col.label, url=url, is_active=is_active, reverse=reverse, sortable=col.sortable, column=col)
         yield link
Example #8
0
def current_url(context, **kwargs):
    request = context['request']
    return gutils.get_url_with_modified_params(request, kwargs)
Example #9
0
def current_url(context, **kwargs):
    request = context['request']
    return gutils.get_url_with_modified_params(request, kwargs)
Example #10
0
 def request(self, data, values, append):
     request = self.factory.get("/", data=data)
     url = utils.get_url_with_modified_params(request, values, append=append)
     parts = six.moves.urllib.parse.urlparse(url)
     return six.moves.urllib.parse.parse_qs(parts.query)
Example #11
0
 def create_url(self, request):
     current_url = request.get_full_path()
     url = utils.get_url_with_modified_params(self.to,
                                              {"next": current_url})
     return url
Example #12
0
 def create_link(self, request, number):
     base_url = request.get_full_path()
     param = self.paginator.parameter_name
     url = utils.get_url_with_modified_params(request, {param: number})
     return ui.Link(url=url, content=six.text_type(number), is_active=url == base_url)
Example #13
0
 def create_link(self, request, number):
     param = self.paginator.parameter_name
     url = utils.get_url_with_modified_params(request, {param: number})
     return ui.Link(url=url,
                    content=six.text_type(number),
                    is_active=number == self.number)
Example #14
0
 def create_url(self, request):
     current_url = request.get_full_path()
     url = utils.get_url_with_modified_params(self.to, {"next": current_url})
     return url