Source code for slim.helpers

__title__ = 'slim.helpers'
__version__ = '0.7'
__build__ = 0x000007
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__all__ = ('get_default_language', 'default_language', 'get_languages', 'get_languages_keys', \
           'get_language_from_request', 'get_languages_dict', 'admin_change_url', 'admin_add_url', 'smart_resolve')

from django.conf import settings
from django.core.urlresolvers import reverse
from django.utils.translation import get_language_info

from slim.settings import USE_LOCAL_LANGUAGE_NAMES

[docs]def get_default_language(): """ Gets default language. :return str: """ return settings.LANGUAGES[0][0]
default_language = get_default_language()
[docs]def get_languages(): """ Gets available languages. :return iterable: """ if not USE_LOCAL_LANGUAGE_NAMES: return settings.LANGUAGES else: languages = [] for lang_code, lang_name in settings.LANGUAGES: try: lang_name = get_language_info(lang_code)['name_local'] except Exception as e: pass languages.append((lang_code, lang_name)) return languages
[docs]def get_languages_keys(): """ Returns just languages keys. :return list: """ return [key for key, name in get_languages()]
[docs]def get_languages_dict(): """ Returns just languages dict. :return dict: """ return dict(get_languages())
[docs]def get_language_from_request(request, default=default_language): """ Gets language from HttpRequest :param django.http.HttpRequest: :param str default: :return str: """ if hasattr(request, 'LANGUAGE_CODE') and request.LANGUAGE_CODE: return request.LANGUAGE_CODE else: return default
[docs]def admin_change_url(app_label, module_name, object_id, extra_path='', url_title=None): """ Gets an admin change URL for the object given. :param str app_label: :param str module_name: :param int object_id: :param str extra_path: :param str url_title: If given, an HTML a tag is returned with `url_title` as the tag title. If left to None just the URL string is returned. :return str: """ try: url = reverse('admin:%s_%s_change' %(app_label, module_name), args=[object_id]) + extra_path if url_title: return u'<a href="%s">%s</a>' %(url, url_title) else: return url except: return None
[docs]def admin_add_url(app_label, module_name, extra_path='', url_title=None): """ Gets an admin edit URL for the object given. :param str app_label: :param str module_name: :param str extra_path: :param str url_title: If given, an HTML a tag is returned with `url_title` as the tag title. If left to None just the URL string is returned. :return str: """ try: url = reverse('admin:%s_%s_add' %(app_label, module_name)) + extra_path if url_title: return u'<a href="%s">%s</a>' %(url, url_title) else: return url except: return None
[docs]def smart_resolve(var, context): """ Resolves variable from context in a smart way. First trying to resolve from context and when result is None checks if variable is not None and returns just variable when not. Otherwise returns None. :param str var: :param Context context: :return mixed: """ if var is None: return None ret_val = None try: ret_val = var.resolve(context, True) except: ret_val = var if ret_val is None: ret_val = var return ret_val
Read the Docs v: 0.7
Versions
latest
0.7.2
0.7.1
0.7
0.6
0.5
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.