summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2014-10-24 13:50:37 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2014-10-24 13:50:37 -0300
commitbbe2403ea20b1ed36ffa5b8a214c8813a805e230 (patch)
treefc1e6b939ec089fc8dc61dac12af4a4944ce3805
parentd0b4e20bf4d2cb45b65e8eee54abc1eedbaa57d9 (diff)
downloadaskbot-bbe2403ea20b1ed36ffa5b8a214c8813a805e230.tar.gz
askbot-bbe2403ea20b1ed36ffa5b8a214c8813a805e230.tar.bz2
askbot-bbe2403ea20b1ed36ffa5b8a214c8813a805e230.zip
more work towards supporting django templates
-rw-r--r--askbot/context.py7
-rw-r--r--askbot/management/commands/clear_cache.py6
-rw-r--r--askbot/templates/widgets/scope_nav.html7
-rw-r--r--askbot/templatetags/askbot_django.py49
-rw-r--r--askbot/views/readers.py2
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('*', '&#10045;')
+
+@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)])