diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2014-10-24 13:50:37 -0300 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2014-10-24 13:50:37 -0300 |
commit | bbe2403ea20b1ed36ffa5b8a214c8813a805e230 (patch) | |
tree | fc1e6b939ec089fc8dc61dac12af4a4944ce3805 | |
parent | d0b4e20bf4d2cb45b65e8eee54abc1eedbaa57d9 (diff) | |
download | askbot-bbe2403ea20b1ed36ffa5b8a214c8813a805e230.tar.gz askbot-bbe2403ea20b1ed36ffa5b8a214c8813a805e230.tar.bz2 askbot-bbe2403ea20b1ed36ffa5b8a214c8813a805e230.zip |
more work towards supporting django templates
-rw-r--r-- | askbot/context.py | 7 | ||||
-rw-r--r-- | askbot/management/commands/clear_cache.py | 6 | ||||
-rw-r--r-- | askbot/templates/widgets/scope_nav.html | 7 | ||||
-rw-r--r-- | askbot/templatetags/askbot_django.py | 49 | ||||
-rw-r--r-- | askbot/views/readers.py | 2 |
5 files changed, 61 insertions, 10 deletions
diff --git a/askbot/context.py b/askbot/context.py index b0855b0b..94234337 100644 --- a/askbot/context.py +++ b/askbot/context.py @@ -12,6 +12,7 @@ from askbot import api from askbot import models from askbot import const from askbot.conf import settings as askbot_settings +from askbot.search.state_manager import SearchState from askbot.skins.loaders import get_skin from askbot.utils import url_utils from askbot.utils.slug import slugify @@ -75,13 +76,19 @@ def application_settings(request): else: min_search_word_length = my_settings['MIN_SEARCH_WORD_LENGTH'] + need_scope_links = askbot_settings.ALL_SCOPE_ENABLED or \ + askbot_settings.UNANSWERED_SCOPE_ENABLED or \ + (request.user.is_authenticated() and askbot_settings.FOLLOWED_SCOPE_ENABLED) + context = { 'base_url': site_url(''), + 'empty_search_state': SearchState.get_empty(), 'min_search_word_length': min_search_word_length, 'current_language_code': current_language, 'settings': my_settings, 'skin': get_skin(), 'moderation_items': api.get_info_on_moderation_items(request.user), + 'need_scope_links': need_scope_links, 'noscript_url': const.DEPENDENCY_URLS['noscript'], } diff --git a/askbot/management/commands/clear_cache.py b/askbot/management/commands/clear_cache.py new file mode 100644 index 00000000..c13213b4 --- /dev/null +++ b/askbot/management/commands/clear_cache.py @@ -0,0 +1,6 @@ +from django.core.management.base import NoArgsCommand +from django.core.cache import cache + +class Command(NoArgsCommand): + def handle_noargs(self, *args, **kwargs): + cache.clear() diff --git a/askbot/templates/widgets/scope_nav.html b/askbot/templates/widgets/scope_nav.html index 155667ac..5bae5c3c 100644 --- a/askbot/templates/widgets/scope_nav.html +++ b/askbot/templates/widgets/scope_nav.html @@ -1,10 +1,3 @@ -{% set need_scope_links = ( - settings.ALL_SCOPE_ENABLED|to_int + - settings.UNANSWERED_SCOPE_ENABLED|to_int + - (request.user.is_authenticated() and settings.FOLLOWED_SCOPE_ENABLED)|to_int - > 1 - ) -%} <div id="scopeNav"> {% if need_scope_links %} {% if active_tab != "ask" %} diff --git a/askbot/templatetags/askbot_django.py b/askbot/templatetags/askbot_django.py index 5a90af16..225c919b 100644 --- a/askbot/templatetags/askbot_django.py +++ b/askbot/templatetags/askbot_django.py @@ -1,6 +1,8 @@ from django import template from django.core.urlresolvers import reverse from django.contrib.humanize.templatetags.humanize import intcomma +from django.utils.safestring import mark_safe + from askbot.conf import settings as askbot_settings from askbot.utils.pluralization import py_pluralize as _py_pluralize from askbot.utils import functions @@ -18,7 +20,7 @@ def as_js_bool(some_object): @register.filter def set_sort_method(search_state, sort_method): """sets sort method on search state""" - return search_state.change_sort(sort_method).full_url() + return search_state.change_sort(sort_method) @register.filter def remove_author(search_state): @@ -29,21 +31,53 @@ def remove_tags(search_state): return search_state.remove_tags() @register.filter +def add_tag(search_state, tag): + return search_state.add_tag(tag) + +@register.filter def change_page(search_state, page): return search_state.change_page(page) @register.filter +def change_scope(search_state, scope): + return search_state.change_scope(scope) + +@register.filter def get_url(search_state): - return search_state.full_url() + return mark_safe(search_state.full_url()) + +@register.filter +def full_ask_url(search_state): + return mark_safe(search_state.full_ask_url()) @register.filter def get_answer_count(thread, visitor): return thread.get_answer_count(visitor) @register.filter +def get_value(obj, key): + return obj[key] + +@register.filter +def trim(text): + return text.strip() + +@register.filter def get_latest_revision(thread, visitor): return thread.get_latest_revision(visitor) +@register.filter +def render_asterisk(text): + return text.replace('*', '✽') + +@register.filter +def remove_dots(text): + return text.replace('.', '') + +@register.filter +def endswith(text, what): + return text.endswith(what) + setup_paginator = register.filter(functions.setup_paginator) @register.filter @@ -100,11 +134,15 @@ def avatar(user, size): @register.inclusion_tag('widgets/tag_list.html') def tag_list_widget(tags, **kwargs): kwargs['tags'] = tags + kwargs.setdefault('tag_html_tag', 'li') + kwargs.setdefault('make_links', True) return kwargs @register.inclusion_tag('widgets/tag.html') def tag_widget(tag, **kwargs): kwargs['tag'] = tag + kwargs.setdefault('html_tag', 'div') + kwargs.setdefault('is_link', True) if kwargs.get('search_state') is None: kwargs['search_state'] = SearchState.get_empty() return kwargs @@ -157,3 +195,10 @@ def user_primary_group(user): 'group_name': group_name, 'group_url': group_url } + +@register.inclusion_tag('widgets/reversible_sort_button.html') +def reversible_sort_button(**kwargs): + key_name = kwargs['key_name'] + kwargs['key_name_asc'] = key_name + '-asc' + kwargs['key_name_desc'] = key_name + '-desc' + return kwargs diff --git a/askbot/views/readers.py b/askbot/views/readers.py index 4327e13a..9070ea0a 100644 --- a/askbot/views/readers.py +++ b/askbot/views/readers.py @@ -337,7 +337,7 @@ def tags(request):#view showing a listing of available tags - plain list 'active_tab': 'tags', 'page_class': 'tags-page', 'tag_list_type' : tag_list_type, - 'stag' : query, + 'query' : query, 'tab_id' : sortby, 'keywords' : query, 'search_state': SearchState(*[None for x in range(8)]) |