def index(request): add_product_form = AddProductForm() context = { 'products': Product.objects.filter(on_the_main=True), 'categories': Category.objects.all(), 'form': add_product_form, 'uah': ExchangeRate.objects.get(currency_name='UAH').currency } return render(request, 'product/index.html', context) def multiply(value, arg): return round(value * arg, 2) register.filter('multiply', multiply) def subcategory_product(request, id): context = { 'subcategory': get_object_or_404(Subcategory, id=id), 'next': '/{}'.format(id), 'uah': ExchangeRate.objects.get(currency_name='UAH').currency } return render(request, 'product/subcategory-product.html', context) def increase_product_rating(id): product = get_object_or_404(Product, id=id) product.rating += 1 product.save()
from timeslot.models import DATEFORMAT, TimeSlot, Roster from django.template.loader import render_to_string from django.template.defaultfilters import register def dayshifts(day, roster): date = datetime.datetime.strptime(day, DATEFORMAT) roster = Roster.objects.get(pk=int(roster)) slots = TimeSlot.objects.filter(roster=roster).filter( start__gt=date, start__lt=date + datetime.timedelta(days=1)).order_by('start') return render_to_string('dayshifts.html', { 'slots': slots, }) def dayshiftcount(day, roster): date = datetime.datetime.strptime(day, DATEFORMAT) return TimeSlot.objects.filter(roster=roster).filter( start__gt=date, start__lt=date + datetime.timedelta(days=1)).count() def daylong(day): date = datetime.datetime.strptime(day, DATEFORMAT) return date.strftime('%A %d-%m-%Y') register.filter('dayshifts', dayshifts) register.filter('dayshiftcount', dayshiftcount) register.filter('daylong', daylong)
import string from django.template.defaultfilters import stringfilter, register from django.utils.html import conditional_escape from django.utils.safestring import mark_safe @register.filter(needs_autoescape=True) @stringfilter def wbr(value, what, autoescape=None): if autoescape: esc = conditional_escape else: esc = lambda x: x parts = string.split(value, what) safe_parts = map(esc, parts) result = string.join(safe_parts, what + '<wbr/>') return mark_safe(result) register.filter('wbr', wbr)
from django.conf import settings from decimal import Decimal from django.utils.encoding import force_text from django.utils.formats import number_format from django.template.defaultfilters import register def money(value, use_l10n=True): """ Separator '.' Converts an integer to a string containing commas every three digits. For example, 3000 becomes '3.000' and 45000 becomes '45.000'. """ if settings.USE_L10N and use_l10n: try: if not isinstance(value, (float, Decimal)): value = int(value) except (TypeError, ValueError): return money(value, False) else: return number_format(value, force_grouping=True) orig = force_text(value) new = re.sub("^(-?\d+)(\d{3})", '\g<1>.\g<2>', orig) if orig == new: return new else: return money(new, use_l10n) register.filter('money', money)
def setup_hotfix(): logging.info("patching django debug toolbar for appengine ...") sys.modules['django.db.backends.appengine'] = new.module('django.db.backends.appengine') sys.modules['django.db.backends'] = new.module('django.db.backends') backend = new.module('django.db.backends.appengine.base') backend.DatabaseWrapper = DatabaseWrapper backend.DatabaseError = DatabaseError backend.supports_constraints = False backend.quote_name = complain backend.dictfetchone = complain backend.dictfetchmany = complain backend.dictfetchall = complain backend.get_last_insert_id = complain backend.get_date_extract_sql = complain backend.get_date_trunc_sql = complain backend.get_limit_offset_sql = complain backend.get_random_function_sql = complain backend.get_deferrable_sql = complain backend.get_fulltext_search_sql = complain backend.get_drop_foreignkey_sql = complain backend.get_sql_flush = complain backend.OPERATOR_MAPPING = {} sys.modules['django.db.backends.appengine.base'] = backend import django.http django.http.HttpRequest.is_ajax = is_ajax django.http.HttpResponse.get = get_header django.http.HttpResponseBadRequest = HttpResponseBadRequest import django.conf.urls.defaults django.conf.urls.defaults.url = url django.conf.urls.defaults.__all__.append('url') import django.utils import hashlib hashcompat = new.module('django.utils.hashcompat') hashcompat.md5_hmac = hashcompat.md5_constructor = hashlib.md5 hashcompat.sha_hmac = hashcompat.sha_constructor = hashlib.sha1 sys.modules['django.utils.hashcompat'] = hashcompat from django.newforms.util import smart_unicode encoding = new.module('django.utils.encoding') encoding.__all__ = ['smart_unicode', 'force_unicode'] encoding.smart_unicode = smart_unicode encoding.force_unicode = force_unicode sys.modules['django.utils.encoding'] = django.utils.encoding = encoding from django.utils.functional import lazy import django.utils.translation django.utils.translation.ugettext_lazy = lazy(ugettext, unicode) django.utils.translation.ungettext_lazy = lazy(ungettext, unicode) import django.dispatch django.dispatch.Signal = Signal import django.test.signals django.test.signals.template_rendered = Signal(providing_args=["template", "context"]) from django.template.defaultfilters import register register.filter(safe)
import string from django.template.defaultfilters import stringfilter, register from django.utils.html import conditional_escape from django.utils.safestring import mark_safe @register.filter(needs_autoescape=True) @stringfilter def wbr(value, what, autoescape=None): if autoescape: esc = conditional_escape else: esc = lambda x: x parts = string.split(value, what) safe_parts = map(esc, parts) result = string.join(safe_parts, what + '<wbr/>') return mark_safe(result) register.filter('wbr', wbr)
import datetime from timeslot.models import DATEFORMAT, TimeSlot, Roster from django.template.loader import render_to_string from django.template.defaultfilters import register def dayshifts(day, roster): date = datetime.datetime.strptime(day, DATEFORMAT) roster = Roster.objects.get(pk = int(roster)) slots = TimeSlot.objects.filter(roster = roster).filter(start__gt = date, start__lt = date + datetime.timedelta(days = 1)).order_by('start') return render_to_string('dayshifts.html', { 'slots': slots, }) def dayshiftcount(day, roster): date = datetime.datetime.strptime(day, DATEFORMAT) return TimeSlot.objects.filter(roster = roster).filter(start__gt = date, start__lt = date + datetime.timedelta(days = 1)).count() def daylong(day): date = datetime.datetime.strptime(day, DATEFORMAT) return date.strftime('%A %d-%m-%Y') register.filter('dayshifts', dayshifts) register.filter('dayshiftcount', dayshiftcount) register.filter('daylong', daylong)