コード例 #1
0
ファイル: base.py プロジェクト: vivsh/djingles
 def build_links(self, request, bound_field=None):
     data = request.GET if request else {}
     sort_key = bound_field.name if bound_field else None
     sort_field = bound_field.field if bound_field else None
     for col in self.columns.visible_columns():
         if sort_key and sort_field:
             field = sort_field
             code = field.get_value_for_name(col.name)
             value = data.get(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 = {sort_key: next_value}
         else:
             is_active = False
             reverse = False
             mods = {}
         if request:
             url = url_query_update(request.build_absolute_uri(),
                                    mods) if mods else None
         else:
             url = None
         link = Link(content=col.label,
                     url=url,
                     is_active=is_active,
                     reverse=reverse,
                     sortable=col.sortable,
                     column=col)
         yield link
コード例 #2
0
ファイル: pagination.py プロジェクト: vivsh/djingles
 def create_link(self, request, number):
     param = self.paginator.parameter_name
     url = utils.url_query_update(request.build_absolute_uri(),
                                  {param: number})
     return html.Link(url=url,
                      content=str(number),
                      is_active=number == self.number)
コード例 #3
0
ファイル: forms.py プロジェクト: vivsh/djingles
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.url_query_update(url, {field.name: code})
            yield links.Link(link_url, label, is_active, value=code)
コード例 #4
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.url_query_update(request.build_absolute_uri(),
                                      {field_name: next_value})
         yield html.Link(url=url, content=content, is_active=is_active)
コード例 #5
0
ファイル: exceptions.py プロジェクト: vivsh/djingles
 def create_url(self, request):
     current_url = request.get_full_path()
     url = utils.url_query_update(self.to, {"next": current_url})
     return url